{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 导入模块"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/root/miniconda3/bin/python'"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sys\n",
    "\n",
    "sys.executable"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "from os import path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import gc"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['4月',\n",
       " '20190529',\n",
       " '20190529-4G电围.xls',\n",
       " '.DS_Store',\n",
       " '分析数据',\n",
       " '3月',\n",
       " 'data_eda.ipynb',\n",
       " 'same',\n",
       " '20190529-001.csv',\n",
       " '20190424-001.xlsx',\n",
       " '20190524-001.csv',\n",
       " '20190529-4G_resave.csv',\n",
       " 'test.py',\n",
       " '20190422-灵瞳感知器.xls',\n",
       " '最新数据',\n",
       " '050823数据表']"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "os.listdir('../Project Data/')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "sns.set_style()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on function set_style in module seaborn.rcmod:\n",
      "\n",
      "set_style(style=None, rc=None)\n",
      "    Set the aesthetic style of the plots.\n",
      "    \n",
      "    This affects things like the color of the axes, whether a grid is\n",
      "    enabled by default, and other aesthetic elements.\n",
      "    \n",
      "    Parameters\n",
      "    ----------\n",
      "    style : dict, None, or one of {darkgrid, whitegrid, dark, white, ticks}\n",
      "        A dictionary of parameters or the name of a preconfigured set.\n",
      "    rc : dict, optional\n",
      "        Parameter mappings to override the values in the preset seaborn\n",
      "        style dictionaries. This only updates parameters that are\n",
      "        considered part of the style definition.\n",
      "    \n",
      "    Examples\n",
      "    --------\n",
      "    >>> set_style(\"whitegrid\")\n",
      "    \n",
      "    >>> set_style(\"ticks\", {\"xtick.major.size\": 8, \"ytick.major.size\": 8})\n",
      "    \n",
      "    See Also\n",
      "    --------\n",
      "    axes_style : return a dict of parameters or use in a ``with`` statement\n",
      "                 to temporarily set the style.\n",
      "    set_context : set parameters to scale plot elements\n",
      "    set_palette : set the default color palette for figures\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(sns.set_style)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 用户轨迹探索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "os.chdir('../Project Data/')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "data = pd.read_csv('20190524-001.csv', nrows=1000, encoding='gbk')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>imei_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "      <th>area_</th>\n",
       "      <th>msisdn_</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>\\t</td>\n",
       "      <td>2019-05-08 20:09:29\\t</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝\\t</td>\n",
       "      <td>FDD-LTE\\t</td>\n",
       "      <td>DX-SZSC001\\t</td>\n",
       "      <td>Normal Lau\\t</td>\n",
       "      <td>\\t</td>\n",
       "      <td>\\t</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>\\t</td>\n",
       "      <td>2019-05-08 20:09:41\\t</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝\\t</td>\n",
       "      <td>FDD-LTE\\t</td>\n",
       "      <td>DX-SZSC001\\t</td>\n",
       "      <td>Normal Lau\\t</td>\n",
       "      <td>\\t</td>\n",
       "      <td>\\t</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>\\t</td>\n",
       "      <td>2019-05-08 20:10:14\\t</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝\\t</td>\n",
       "      <td>FDD-LTE\\t</td>\n",
       "      <td>DX-SZSC001\\t</td>\n",
       "      <td>Normal Lau\\t</td>\n",
       "      <td>\\t</td>\n",
       "      <td>\\t</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>\\t</td>\n",
       "      <td>2019-05-08 20:10:40\\t</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝\\t</td>\n",
       "      <td>FDD-LTE\\t</td>\n",
       "      <td>DX-SZSC001\\t</td>\n",
       "      <td>Normal Lau\\t</td>\n",
       "      <td>\\t</td>\n",
       "      <td>\\t</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>\\t</td>\n",
       "      <td>2019-05-08 20:08:55\\t</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝\\t</td>\n",
       "      <td>FDD-LTE\\t</td>\n",
       "      <td>LT-SZSC001\\t</td>\n",
       "      <td>Normal Lau\\t</td>\n",
       "      <td>\\t</td>\n",
       "      <td>\\t</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             imsi_ imei_           update_time_  lac_  cellid_ status_  \\\n",
       "0  460110413044304    \\t  2019-05-08 20:09:29\\t     0        0    拒绝\\t   \n",
       "1  460110413042577    \\t  2019-05-08 20:09:41\\t     0        0    拒绝\\t   \n",
       "2  460110425023300    \\t  2019-05-08 20:10:14\\t     0        0    拒绝\\t   \n",
       "3  460110714141865    \\t  2019-05-08 20:10:40\\t     0        0    拒绝\\t   \n",
       "4  460016692088409    \\t  2019-05-08 20:08:55\\t     0        0    拒绝\\t   \n",
       "\n",
       "    ap_type_    device_id_      eventid_ area_ msisdn_  \n",
       "0  FDD-LTE\\t  DX-SZSC001\\t  Normal Lau\\t    \\t      \\t  \n",
       "1  FDD-LTE\\t  DX-SZSC001\\t  Normal Lau\\t    \\t      \\t  \n",
       "2  FDD-LTE\\t  DX-SZSC001\\t  Normal Lau\\t    \\t      \\t  \n",
       "3  FDD-LTE\\t  DX-SZSC001\\t  Normal Lau\\t    \\t      \\t  \n",
       "4  FDD-LTE\\t  LT-SZSC001\\t  Normal Lau\\t    \\t      \\t  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "drop_col = ['imei_', 'area_', 'msisdn_']\n",
    "data1 = data.drop(drop_col,axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_data(file_name):\n",
    "    file_extension = path.splitext(file_name)[1]\n",
    "    if file_extension == '.csv':\n",
    "        data = pd.read_csv(file_name, encoding='gbk')\n",
    "    elif file_extension == '.xlsx':\n",
    "        data = pd.read_excel(file_name, encoding='gbk')\n",
    "    drop_col = ['imei_', 'area_', 'msisdn_']\n",
    "    data.drop(drop_col, axis=1, inplace=True)\n",
    "    col = data.columns\n",
    "    for each in col:\n",
    "        if data[each].dtype == object:\n",
    "            data[each] = data[each].str.replace('\\t', '')\n",
    "    print('data processed successfully')\n",
    "    return data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['4月',\n",
       " '20190529',\n",
       " '20190529-4G电围.xls',\n",
       " '.DS_Store',\n",
       " '分析数据',\n",
       " '3月',\n",
       " 'data_eda.ipynb',\n",
       " 'same',\n",
       " '20190529-001.csv',\n",
       " '20190424-001.xlsx',\n",
       " '20190524-001.csv',\n",
       " '20190529-4G_resave.csv',\n",
       " 'test.py',\n",
       " '20190422-灵瞳感知器.xls',\n",
       " '最新数据',\n",
       " '050823数据表']"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "os.listdir()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "data processed successfully\n",
      "data processed successfully\n"
     ]
    }
   ],
   "source": [
    "data1 = get_data('20190524-001.csv')\n",
    "data2 = get_data('20190529-001.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             imsi_         update_time_  lac_  cellid_ status_ ap_type_  \\\n",
       "0  460110413044304  2019-05-08 20:09:29     0        0      拒绝  FDD-LTE   \n",
       "1  460110413042577  2019-05-08 20:09:41     0        0      拒绝  FDD-LTE   \n",
       "2  460110425023300  2019-05-08 20:10:14     0        0      拒绝  FDD-LTE   \n",
       "3  460110714141865  2019-05-08 20:10:40     0        0      拒绝  FDD-LTE   \n",
       "4  460016692088409  2019-05-08 20:08:55     0        0      拒绝  FDD-LTE   \n",
       "\n",
       "   device_id_    eventid_  \n",
       "0  DX-SZSC001  Normal Lau  \n",
       "1  DX-SZSC001  Normal Lau  \n",
       "2  DX-SZSC001  Normal Lau  \n",
       "3  DX-SZSC001  Normal Lau  \n",
       "4  LT-SZSC001  Normal Lau  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def convert_to_time(data):\n",
    "    for each in data:\n",
    "#         print(each.columns)\n",
    "        each.index = pd.to_datetime(each['update_time_'])\n",
    "#         print(each.colums)\n",
    "#         each.drop(['update_time_'], axis=1, inplace=True)\n",
    "    print('successfully')\n",
    "    return data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "successfully\n"
     ]
    }
   ],
   "source": [
    "data1_, data2_ = convert_to_time([data1, data2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:14</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:40</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:08:55</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_         update_time_  lac_  cellid_  \\\n",
       "update_time_                                                               \n",
       "2019-05-08 20:09:29  460110413044304  2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577  2019-05-08 20:09:41     0        0   \n",
       "2019-05-08 20:10:14  460110425023300  2019-05-08 20:10:14     0        0   \n",
       "2019-05-08 20:10:40  460110714141865  2019-05-08 20:10:40     0        0   \n",
       "2019-05-08 20:08:55  460016692088409  2019-05-08 20:08:55     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  \n",
       "update_time_                                                  \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:10:14      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:10:40      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:08:55      拒绝  FDD-LTE  LT-SZSC001  Normal Lau  "
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(338898, 8)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(430480, 8)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以发现，数据1检测的时间有16天。数据2检测的时间有7天"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "16"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1_.index.day[-1] - data1_.index.day[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "21"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2_.index.day[-1] - data2_.index.day[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "update_time_\n",
       "2019-05-08 20:09:29    460110413044304\n",
       "2019-05-08 20:09:41    460110413042577\n",
       "2019-05-08 20:10:14    460110425023300\n",
       "2019-05-08 20:10:40    460110714141865\n",
       "2019-05-08 20:08:55    460016692088409\n",
       "                            ...       \n",
       "2019-05-15 23:58:43    460019454206454\n",
       "2019-05-15 23:59:11    460015232357562\n",
       "2019-05-15 23:59:21    460008760270567\n",
       "2019-05-15 23:59:24    460110714141865\n",
       "2019-05-15 23:59:46    460029420804175\n",
       "Name: imsi_, Length: 147072, dtype: int64"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 可以按时间这样切片。但必须是Series，不能是DF\n",
    "data1_.imsi_['20190508':'20190515']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "one_week = data1_.loc['20190508':'20190515', :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:14</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:40</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:08:55</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_         update_time_  lac_  cellid_  \\\n",
       "update_time_                                                               \n",
       "2019-05-08 20:09:29  460110413044304  2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577  2019-05-08 20:09:41     0        0   \n",
       "2019-05-08 20:10:14  460110425023300  2019-05-08 20:10:14     0        0   \n",
       "2019-05-08 20:10:40  460110714141865  2019-05-08 20:10:40     0        0   \n",
       "2019-05-08 20:08:55  460016692088409  2019-05-08 20:08:55     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  \n",
       "update_time_                                                  \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:10:14      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:10:40      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:08:55      拒绝  FDD-LTE  LT-SZSC001  Normal Lau  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "one_week.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.31764713881636203"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "one_week.imsi_.nunique()/one_week.shape[0] # 说明大部分id都是重复出现过的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['DX-SZSC001', 'LT-SZSC001', 'YD-SZSC001'], dtype=object)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 说明只有三个机器\n",
    "one_week.device_id_.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Normal Lau'], dtype=object)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "one_week.eventid_.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "460110714141865    1732\n",
       "460110413044304     581\n",
       "460012480316441     515\n",
       "460110700163772     479\n",
       "460014946660039     457\n",
       "                   ... \n",
       "460002606630392       1\n",
       "460002606768993       1\n",
       "460022786534869       1\n",
       "460075737808351       1\n",
       "460028146282347       1\n",
       "Name: imsi_, Length: 46717, dtype: int64"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "one_week.imsi_.value_counts() # 有很多一个星期只出现过一次的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "264"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gc.collect()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "imsi_            device_id_  update_time_       \n",
       "204043315383882  DX-SZSC001  2019-05-23 17:20:10    1\n",
       "204043863737390  DX-SZSC001  2019-05-24 14:51:06    1\n",
       "204046031010732  DX-SZSC001  2019-05-09 14:19:45    1\n",
       "204047102616026  LT-SZSC001  2019-05-15 20:13:18    1\n",
       "206012229081504  YD-SZSC001  2019-05-10 12:11:12    1\n",
       "                                                   ..\n",
       "525058231350753  YD-SZSC001  2019-05-10 13:44:48    1\n",
       "                             2019-05-10 14:01:04    1\n",
       "                             2019-05-10 14:16:48    1\n",
       "                             2019-05-10 14:32:55    1\n",
       "641101902316484  YD-SZSC001  2019-05-17 22:42:52    1\n",
       "Name: update_time_, Length: 338796, dtype: int64"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.groupby(['imsi_', 'device_id_',])['update_time_'].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**可以发现res的columns只有三列。而index是元祖的形式**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "metadata": {},
   "outputs": [],
   "source": [
    "res = res.fillna(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id_</th>\n",
       "      <th>DX-SZSC001</th>\n",
       "      <th>LT-SZSC001</th>\n",
       "      <th>YD-SZSC001</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>204043315383882</th>\n",
       "      <th>2019-05-23 17:20:10</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204043863737390</th>\n",
       "      <th>2019-05-24 14:51:06</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204046031010732</th>\n",
       "      <th>2019-05-09 14:19:45</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204047102616026</th>\n",
       "      <th>2019-05-15 20:13:18</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>206012229081504</th>\n",
       "      <th>2019-05-10 12:11:12</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"4\" valign=\"top\">525058231350753</th>\n",
       "      <th>2019-05-10 13:44:48</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-10 14:01:04</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-10 14:16:48</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-10 14:32:55</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>641101902316484</th>\n",
       "      <th>2019-05-17 22:42:52</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>338796 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "device_id_                           DX-SZSC001  LT-SZSC001  YD-SZSC001\n",
       "imsi_           update_time_                                           \n",
       "204043315383882 2019-05-23 17:20:10         1.0         0.0         0.0\n",
       "204043863737390 2019-05-24 14:51:06         1.0         0.0         0.0\n",
       "204046031010732 2019-05-09 14:19:45         1.0         0.0         0.0\n",
       "204047102616026 2019-05-15 20:13:18         0.0         1.0         0.0\n",
       "206012229081504 2019-05-10 12:11:12         0.0         0.0         1.0\n",
       "...                                         ...         ...         ...\n",
       "525058231350753 2019-05-10 13:44:48         0.0         0.0         1.0\n",
       "                2019-05-10 14:01:04         0.0         0.0         1.0\n",
       "                2019-05-10 14:16:48         0.0         0.0         1.0\n",
       "                2019-05-10 14:32:55         0.0         0.0         1.0\n",
       "641101902316484 2019-05-17 22:42:52         0.0         0.0         1.0\n",
       "\n",
       "[338796 rows x 3 columns]"
      ]
     },
     "execution_count": 179,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on function unstack in module pandas.core.frame:\n",
      "\n",
      "unstack(self, level=-1, fill_value=None)\n",
      "    Pivot a level of the (necessarily hierarchical) index labels.\n",
      "    \n",
      "    Returns a DataFrame having a new level of column labels whose inner-most level\n",
      "    consists of the pivoted index labels.\n",
      "    \n",
      "    If the index is not a MultiIndex, the output will be a Series\n",
      "    (the analogue of stack when the columns are not a MultiIndex).\n",
      "    \n",
      "    Parameters\n",
      "    ----------\n",
      "    level : int, str, or list of these, default -1 (last level)\n",
      "        Level(s) of index to unstack, can pass level name.\n",
      "    fill_value : int, str or dict\n",
      "        Replace NaN with this value if the unstack produces missing values.\n",
      "    \n",
      "    Returns\n",
      "    -------\n",
      "    Series or DataFrame\n",
      "    \n",
      "    See Also\n",
      "    --------\n",
      "    DataFrame.pivot : Pivot a table based on column values.\n",
      "    DataFrame.stack : Pivot a level of the column labels (inverse operation\n",
      "        from `unstack`).\n",
      "    \n",
      "    Examples\n",
      "    --------\n",
      "    >>> index = pd.MultiIndex.from_tuples([('one', 'a'), ('one', 'b'),\n",
      "    ...                                    ('two', 'a'), ('two', 'b')])\n",
      "    >>> s = pd.Series(np.arange(1.0, 5.0), index=index)\n",
      "    >>> s\n",
      "    one  a   1.0\n",
      "         b   2.0\n",
      "    two  a   3.0\n",
      "         b   4.0\n",
      "    dtype: float64\n",
      "    \n",
      "    >>> s.unstack(level=-1)\n",
      "         a   b\n",
      "    one  1.0  2.0\n",
      "    two  3.0  4.0\n",
      "    \n",
      "    >>> s.unstack(level=0)\n",
      "       one  two\n",
      "    a  1.0   3.0\n",
      "    b  2.0   4.0\n",
      "    \n",
      "    >>> df = s.unstack(level=0)\n",
      "    >>> df.unstack()\n",
      "    one  a  1.0\n",
      "         b  2.0\n",
      "    two  a  3.0\n",
      "         b  4.0\n",
      "    dtype: float64\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(pd.DataFrame.unstack)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "def trace(data):\n",
    "    data1.groupby(['imsi_', 'update_time_',])['device_id_'].value_counts().unstack(fill_value=0)\n",
    "    return data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:14</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:40</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:08:55</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_         update_time_  lac_  cellid_  \\\n",
       "update_time_                                                               \n",
       "2019-05-08 20:09:29  460110413044304  2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577  2019-05-08 20:09:41     0        0   \n",
       "2019-05-08 20:10:14  460110425023300  2019-05-08 20:10:14     0        0   \n",
       "2019-05-08 20:10:40  460110714141865  2019-05-08 20:10:40     0        0   \n",
       "2019-05-08 20:08:55  460016692088409  2019-05-08 20:08:55     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  \n",
       "update_time_                                                  \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:10:14      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:10:40      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:08:55      拒绝  FDD-LTE  LT-SZSC001  Normal Lau  "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 用户轨迹数据存储"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:14</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:40</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:08:55</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_         update_time_  lac_  cellid_  \\\n",
       "update_time_                                                               \n",
       "2019-05-08 20:09:29  460110413044304  2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577  2019-05-08 20:09:41     0        0   \n",
       "2019-05-08 20:10:14  460110425023300  2019-05-08 20:10:14     0        0   \n",
       "2019-05-08 20:10:40  460110714141865  2019-05-08 20:10:40     0        0   \n",
       "2019-05-08 20:08:55  460016692088409  2019-05-08 20:08:55     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  \n",
       "update_time_                                                  \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:10:14      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:10:40      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:08:55      拒绝  FDD-LTE  LT-SZSC001  Normal Lau  "
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [],
   "source": [
    "data1.index = range(data1.shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             imsi_         update_time_  lac_  cellid_ status_ ap_type_  \\\n",
       "0  460110413044304  2019-05-08 20:09:29     0        0      拒绝  FDD-LTE   \n",
       "1  460110413042577  2019-05-08 20:09:41     0        0      拒绝  FDD-LTE   \n",
       "2  460110425023300  2019-05-08 20:10:14     0        0      拒绝  FDD-LTE   \n",
       "3  460110714141865  2019-05-08 20:10:40     0        0      拒绝  FDD-LTE   \n",
       "4  460016692088409  2019-05-08 20:08:55     0        0      拒绝  FDD-LTE   \n",
       "\n",
       "   device_id_    eventid_  \n",
       "0  DX-SZSC001  Normal Lau  \n",
       "1  DX-SZSC001  Normal Lau  \n",
       "2  DX-SZSC001  Normal Lau  \n",
       "3  DX-SZSC001  Normal Lau  \n",
       "4  LT-SZSC001  Normal Lau  "
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id_</th>\n",
       "      <th>DX-SZSC001</th>\n",
       "      <th>LT-SZSC001</th>\n",
       "      <th>YD-SZSC001</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>204043315383882</th>\n",
       "      <th>2019-05-23 17:20:10</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204043863737390</th>\n",
       "      <th>2019-05-24 14:51:06</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204046031010732</th>\n",
       "      <th>2019-05-09 14:19:45</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204047102616026</th>\n",
       "      <th>2019-05-15 20:13:18</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>206012229081504</th>\n",
       "      <th>2019-05-10 12:11:12</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"4\" valign=\"top\">525058231350753</th>\n",
       "      <th>2019-05-10 13:44:48</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-10 14:01:04</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-10 14:16:48</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-10 14:32:55</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>641101902316484</th>\n",
       "      <th>2019-05-17 22:42:52</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>338796 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "device_id_                           DX-SZSC001  LT-SZSC001  YD-SZSC001\n",
       "imsi_           update_time_                                           \n",
       "204043315383882 2019-05-23 17:20:10           1           0           0\n",
       "204043863737390 2019-05-24 14:51:06           1           0           0\n",
       "204046031010732 2019-05-09 14:19:45           1           0           0\n",
       "204047102616026 2019-05-15 20:13:18           0           1           0\n",
       "206012229081504 2019-05-10 12:11:12           0           0           1\n",
       "...                                         ...         ...         ...\n",
       "525058231350753 2019-05-10 13:44:48           0           0           1\n",
       "                2019-05-10 14:01:04           0           0           1\n",
       "                2019-05-10 14:16:48           0           0           1\n",
       "                2019-05-10 14:32:55           0           0           1\n",
       "641101902316484 2019-05-17 22:42:52           0           0           1\n",
       "\n",
       "[338796 rows x 3 columns]"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.groupby(['imsi_', 'update_time_'])['device_id_'].value_counts().unstack(fill_value=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "res = data1.groupby(['imsi_', 'update_time_'])['device_id_'].value_counts().unstack(fill_value=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id_</th>\n",
       "      <th>DX-SZSC001</th>\n",
       "      <th>LT-SZSC001</th>\n",
       "      <th>YD-SZSC001</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>204043315383882</th>\n",
       "      <th>2019-05-23 17:20:10</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204043863737390</th>\n",
       "      <th>2019-05-24 14:51:06</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204046031010732</th>\n",
       "      <th>2019-05-09 14:19:45</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204047102616026</th>\n",
       "      <th>2019-05-15 20:13:18</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>206012229081504</th>\n",
       "      <th>2019-05-10 12:11:12</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "device_id_                           DX-SZSC001  LT-SZSC001  YD-SZSC001\n",
       "imsi_           update_time_                                           \n",
       "204043315383882 2019-05-23 17:20:10           1           0           0\n",
       "204043863737390 2019-05-24 14:51:06           1           0           0\n",
       "204046031010732 2019-05-09 14:19:45           1           0           0\n",
       "204047102616026 2019-05-15 20:13:18           0           1           0\n",
       "206012229081504 2019-05-10 12:11:12           0           0           1"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'index': [(204043315383882, '2019-05-23 17:20:10'),\n",
       "  (204043863737390, '2019-05-24 14:51:06'),\n",
       "  (204046031010732, '2019-05-09 14:19:45'),\n",
       "  (204047102616026, '2019-05-15 20:13:18'),\n",
       "  (206012229081504, '2019-05-10 12:11:12'),\n",
       "  (208015003798694, '2019-05-24 14:13:11'),\n",
       "  (208150100612490, '2019-05-19 14:49:44'),\n",
       "  (208150404397075, '2019-05-16 18:43:21'),\n",
       "  (220018003872080, '2019-05-09 11:42:28'),\n",
       "  (220033300577253, '2019-05-09 11:42:41'),\n",
       "  (222992312514644, '2019-05-08 21:30:45'),\n",
       "  (222992312514644, '2019-05-09 08:54:47'),\n",
       "  (222992312514644, '2019-05-09 21:27:52'),\n",
       "  (222992312514644, '2019-05-10 08:48:07'),\n",
       "  (222992312514644, '2019-05-10 19:28:31'),\n",
       "  (222992312514644, '2019-05-11 13:45:16'),\n",
       "  (222992312514644, '2019-05-11 18:25:41'),\n",
       "  (222992312514644, '2019-05-13 08:53:11'),\n",
       "  (222992312514644, '2019-05-13 17:00:19'),\n",
       "  (222992312514644, '2019-05-13 18:46:10'),\n",
       "  (222992312514644, '2019-05-13 21:24:40'),\n",
       "  (222992312514644, '2019-05-14 08:46:25'),\n",
       "  (222992312514644, '2019-05-14 17:56:50'),\n",
       "  (222992312514644, '2019-05-14 19:12:45'),\n",
       "  (222992312514644, '2019-05-15 09:49:26'),\n",
       "  (222992312514644, '2019-05-16 08:51:30'),\n",
       "  (222992312514644, '2019-05-16 12:21:06'),\n",
       "  (222992312514644, '2019-05-16 15:22:00'),\n",
       "  (222992312514644, '2019-05-16 18:54:58'),\n",
       "  (222992312514644, '2019-05-16 21:25:17'),\n",
       "  (222992312514644, '2019-05-17 08:50:03'),\n",
       "  (222992312514644, '2019-05-17 11:54:06'),\n",
       "  (222992312514644, '2019-05-17 15:11:58'),\n",
       "  (222992312514644, '2019-05-17 19:07:56'),\n",
       "  (222992312514644, '2019-05-20 08:51:44'),\n",
       "  (222992312514644, '2019-05-21 08:54:02'),\n",
       "  (222992312514644, '2019-05-21 17:57:29'),\n",
       "  (222992312514644, '2019-05-22 08:56:22'),\n",
       "  (222992312514644, '2019-05-22 21:24:46'),\n",
       "  (222992312514644, '2019-05-23 08:54:49'),\n",
       "  (222992312514644, '2019-05-23 21:27:28'),\n",
       "  (222992312514644, '2019-05-24 08:55:35'),\n",
       "  (222992312514644, '2019-05-24 19:14:00'),\n",
       "  (222992312514644, '2019-05-24 19:17:10'),\n",
       "  (226102200428599, '2019-05-09 15:00:04'),\n",
       "  (228017227822524, '2019-05-17 09:57:39'),\n",
       "  (228017227822524, '2019-05-17 13:05:17'),\n",
       "  (228017227822524, '2019-05-17 13:13:47'),\n",
       "  (228017228577400, '2019-05-10 19:49:33'),\n",
       "  (228017228577400, '2019-05-12 08:37:49'),\n",
       "  (228017228577400, '2019-05-12 09:26:32'),\n",
       "  (228017228577400, '2019-05-13 13:27:00'),\n",
       "  (228017228577400, '2019-05-14 06:02:25'),\n",
       "  (228017228577400, '2019-05-14 16:19:46'),\n",
       "  (228017228577400, '2019-05-19 12:43:19'),\n",
       "  (228017228577400, '2019-05-19 21:53:50'),\n",
       "  (228017228577400, '2019-05-20 08:06:01'),\n",
       "  (232033016001793, '2019-05-15 17:30:01'),\n",
       "  (234100485806791, '2019-05-22 10:40:40'),\n",
       "  (234100485806791, '2019-05-22 10:42:20'),\n",
       "  (234107723805860, '2019-05-21 13:12:44'),\n",
       "  (234159176293646, '2019-05-22 10:41:24'),\n",
       "  (234159176293646, '2019-05-22 10:50:06'),\n",
       "  (234159518473562, '2019-05-22 10:41:00'),\n",
       "  (234159519024901, '2019-05-19 07:04:26'),\n",
       "  (234201305359325, '2019-05-16 18:19:42'),\n",
       "  (234301203152969, '2019-05-23 10:35:06'),\n",
       "  (234304118522659, '2019-05-17 09:16:46'),\n",
       "  (234304143058670, '2019-05-21 10:40:37'),\n",
       "  (234304160946400, '2019-05-13 15:05:36'),\n",
       "  (234304160946400, '2019-05-13 15:06:23'),\n",
       "  (234304160946400, '2019-05-13 15:10:36'),\n",
       "  (234304160946400, '2019-05-13 15:21:17'),\n",
       "  (234336539047034, '2019-05-11 18:04:07'),\n",
       "  (234336539047034, '2019-05-11 18:50:23'),\n",
       "  (234336539047034, '2019-05-11 21:45:47'),\n",
       "  (238060005522386, '2019-05-22 23:57:40'),\n",
       "  (242029009523507, '2019-05-09 16:28:54'),\n",
       "  (242029009523511, '2019-05-09 16:28:53'),\n",
       "  (250018630731352, '2019-05-19 13:06:24'),\n",
       "  (250027317841700, '2019-05-14 14:07:34'),\n",
       "  (250203011998263, '2019-05-09 19:06:33'),\n",
       "  (250991220145725, '2019-05-24 11:23:51'),\n",
       "  (250992214610153, '2019-05-12 13:03:15'),\n",
       "  (250992214610153, '2019-05-12 13:06:25'),\n",
       "  (250992214610153, '2019-05-12 13:16:13'),\n",
       "  (262022404038212, '2019-05-21 11:23:08'),\n",
       "  (262072002188934, '2019-05-18 17:16:23'),\n",
       "  (268010901026623, '2019-05-19 08:40:27'),\n",
       "  (272023115950103, '2019-05-16 12:22:42'),\n",
       "  (272023115950103, '2019-05-16 12:23:29'),\n",
       "  (302220308728887, '2019-05-16 14:09:48'),\n",
       "  (302370500274578, '2019-05-13 11:00:43'),\n",
       "  (302370502805024, '2019-05-19 17:19:50'),\n",
       "  (302370504590637, '2019-05-16 14:09:49'),\n",
       "  (302370505021201, '2019-05-10 13:04:45'),\n",
       "  (302370603993717, '2019-05-20 14:31:05'),\n",
       "  (302370604744826, '2019-05-20 09:37:37'),\n",
       "  (302610030218858, '2019-05-14 11:48:01'),\n",
       "  (302610030218861, '2019-05-14 11:47:59'),\n",
       "  (302610030218874, '2019-05-14 11:48:01'),\n",
       "  (302610030226251, '2019-05-14 11:48:01'),\n",
       "  (302610930244067, '2019-05-13 11:02:00'),\n",
       "  (302720509833859, '2019-05-16 22:46:57'),\n",
       "  (302720509833859, '2019-05-20 07:13:07'),\n",
       "  (302720610457758, '2019-05-15 17:31:09'),\n",
       "  (302720610457758, '2019-05-17 22:59:01'),\n",
       "  (302720610457758, '2019-05-20 21:24:31'),\n",
       "  (302720696718420, '2019-05-16 11:39:20'),\n",
       "  (302720696718420, '2019-05-16 11:46:35'),\n",
       "  (310120076418012, '2019-05-15 18:30:57'),\n",
       "  (310120076418012, '2019-05-15 19:03:04'),\n",
       "  (310120076418012, '2019-05-15 19:20:56'),\n",
       "  (310120154643988, '2019-05-13 10:13:33'),\n",
       "  (310120154643988, '2019-05-15 11:08:54'),\n",
       "  (310120154643988, '2019-05-15 17:13:25'),\n",
       "  (310150709414497, '2019-05-11 07:55:18'),\n",
       "  (310260092607283, '2019-05-23 14:03:58'),\n",
       "  (310260127718270, '2019-05-12 14:45:48'),\n",
       "  (310260152729886, '2019-05-15 15:44:08'),\n",
       "  (310260152729886, '2019-05-15 15:50:10'),\n",
       "  (310260152729886, '2019-05-22 16:57:04'),\n",
       "  (310260152729886, '2019-05-22 19:09:06'),\n",
       "  (310260309035353, '2019-05-09 15:26:13'),\n",
       "  (310260317599443, '2019-05-16 21:08:21'),\n",
       "  (310260370047229, '2019-05-16 18:58:19'),\n",
       "  (310260370047229, '2019-05-17 13:54:27'),\n",
       "  (310260495622356, '2019-05-15 10:39:25'),\n",
       "  (310260572954366, '2019-05-09 14:40:06'),\n",
       "  (310260596496003, '2019-05-09 09:26:47'),\n",
       "  (310260596496003, '2019-05-10 10:10:16'),\n",
       "  (310260596496003, '2019-05-14 19:40:27'),\n",
       "  (310260596496003, '2019-05-15 21:22:16'),\n",
       "  (310260596496003, '2019-05-16 18:22:39'),\n",
       "  (310260596496003, '2019-05-20 20:34:59'),\n",
       "  (310260614680718, '2019-05-19 15:53:22'),\n",
       "  (310260633831117, '2019-05-22 18:39:07'),\n",
       "  (310260652623888, '2019-05-09 07:54:31'),\n",
       "  (310260652623888, '2019-05-09 11:33:22'),\n",
       "  (310260652623888, '2019-05-10 07:57:42'),\n",
       "  (310260652623888, '2019-05-10 11:41:03'),\n",
       "  (310260652623888, '2019-05-11 07:53:43'),\n",
       "  (310260652623888, '2019-05-11 11:26:32'),\n",
       "  (310260652623888, '2019-05-11 17:50:58'),\n",
       "  (310260652623888, '2019-05-13 11:40:47'),\n",
       "  (310260652623888, '2019-05-13 17:50:27'),\n",
       "  (310260652623888, '2019-05-15 07:49:57'),\n",
       "  (310260652623888, '2019-05-15 11:49:36'),\n",
       "  (310260652623888, '2019-05-15 14:43:38'),\n",
       "  (310260652623888, '2019-05-19 17:48:02'),\n",
       "  (310260652623888, '2019-05-20 11:31:47'),\n",
       "  (310260652623888, '2019-05-20 14:30:04'),\n",
       "  (310260652623888, '2019-05-20 17:50:02'),\n",
       "  (310260652623888, '2019-05-21 07:53:51'),\n",
       "  (310260652623888, '2019-05-21 11:59:36'),\n",
       "  (310260652623888, '2019-05-21 14:28:22'),\n",
       "  (310260652623888, '2019-05-21 17:40:56'),\n",
       "  (310260652623888, '2019-05-22 14:27:59'),\n",
       "  (310260652623888, '2019-05-22 17:49:41'),\n",
       "  (310260652623888, '2019-05-23 07:58:44'),\n",
       "  (310260652623888, '2019-05-23 14:24:01'),\n",
       "  (310260652623888, '2019-05-24 14:26:37'),\n",
       "  (310260652623888, '2019-05-24 17:50:25'),\n",
       "  (310260907997711, '2019-05-19 08:50:12'),\n",
       "  (310260907997711, '2019-05-19 09:42:23'),\n",
       "  (310260907997711, '2019-05-19 10:46:57'),\n",
       "  (310260907997711, '2019-05-19 11:13:45'),\n",
       "  (310260907997711, '2019-05-19 11:39:17'),\n",
       "  (310260907997711, '2019-05-19 12:05:39'),\n",
       "  (310260907997711, '2019-05-19 14:00:20'),\n",
       "  (310260907997711, '2019-05-19 14:06:36'),\n",
       "  (310260907997711, '2019-05-19 14:39:54'),\n",
       "  (310260907997711, '2019-05-19 15:15:04'),\n",
       "  (310260907997711, '2019-05-19 15:29:02'),\n",
       "  (310260907997711, '2019-05-19 15:33:21'),\n",
       "  (310260907997711, '2019-05-19 15:37:03'),\n",
       "  (310260907997711, '2019-05-19 15:39:37'),\n",
       "  (310260907997711, '2019-05-19 15:44:40'),\n",
       "  (310260917434711, '2019-05-13 09:36:09'),\n",
       "  (310260917434711, '2019-05-14 09:33:05'),\n",
       "  (310260917434711, '2019-05-21 19:55:27'),\n",
       "  (310260917434711, '2019-05-22 10:04:01'),\n",
       "  (310260934051653, '2019-05-15 12:01:54'),\n",
       "  (310260934051653, '2019-05-15 21:13:08'),\n",
       "  (310260941952064, '2019-05-16 08:37:44'),\n",
       "  (310260941952064, '2019-05-23 09:23:08'),\n",
       "  (310260971429599, '2019-05-12 12:34:45'),\n",
       "  (310260971429599, '2019-05-12 13:33:26'),\n",
       "  (310260971429599, '2019-05-12 13:34:38'),\n",
       "  (310260971429599, '2019-05-14 18:37:33'),\n",
       "  (310260971429599, '2019-05-14 18:38:45'),\n",
       "  (310260971429599, '2019-05-15 18:29:58'),\n",
       "  (310260971429599, '2019-05-16 18:56:57'),\n",
       "  (310260971429599, '2019-05-17 10:57:47'),\n",
       "  (310260971429599, '2019-05-17 10:58:51'),\n",
       "  (310260971429599, '2019-05-17 11:08:03'),\n",
       "  (310260972887936, '2019-05-17 21:56:39'),\n",
       "  (310260973377876, '2019-05-23 11:40:23'),\n",
       "  (310260973377876, '2019-05-23 12:41:21'),\n",
       "  (310260973460619, '2019-05-10 08:49:49'),\n",
       "  (310260973460619, '2019-05-14 14:07:32'),\n",
       "  (310260973460619, '2019-05-16 12:02:39'),\n",
       "  (310260973460619, '2019-05-17 11:29:15'),\n",
       "  (310260973460619, '2019-05-18 14:27:00'),\n",
       "  (310260973460619, '2019-05-21 08:47:44'),\n",
       "  (310260973460619, '2019-05-23 13:25:40'),\n",
       "  (310260973460619, '2019-05-24 12:38:50'),\n",
       "  (310260973714251, '2019-05-11 19:05:40'),\n",
       "  (310380500088281, '2019-05-18 12:26:32'),\n",
       "  (310380500088281, '2019-05-18 12:27:32'),\n",
       "  (310380700169867, '2019-05-20 17:36:07'),\n",
       "  (310380709457440, '2019-05-13 15:52:54'),\n",
       "  (310410061374318, '2019-05-19 17:11:18'),\n",
       "  (310410089954344, '2019-05-21 12:21:00'),\n",
       "  (310410089954344, '2019-05-23 15:16:30'),\n",
       "  (310410101803106, '2019-05-22 12:52:35'),\n",
       "  (310410131280371, '2019-05-15 12:27:20'),\n",
       "  (310410172085387, '2019-05-21 13:22:12'),\n",
       "  (310410178123069, '2019-05-17 11:48:26'),\n",
       "  (310410184491516, '2019-05-16 16:49:09'),\n",
       "  (310410676018694, '2019-05-24 13:29:48'),\n",
       "  (310410750181643, '2019-05-11 10:46:30'),\n",
       "  (310410751364077, '2019-05-20 00:08:04'),\n",
       "  (310410751364077, '2019-05-21 15:06:03'),\n",
       "  (310410751364077, '2019-05-24 16:17:26'),\n",
       "  (310410768780312, '2019-05-24 11:13:32'),\n",
       "  (310410768780312, '2019-05-24 11:13:45'),\n",
       "  (310410932506699, '2019-05-18 14:46:37'),\n",
       "  (310410932506699, '2019-05-18 18:24:50'),\n",
       "  (310410935201131, '2019-05-09 15:29:36'),\n",
       "  (310410935821702, '2019-05-14 08:11:49'),\n",
       "  (311480152073023, '2019-05-11 12:50:30'),\n",
       "  (311480152073023, '2019-05-11 21:02:03'),\n",
       "  (311480159567752, '2019-05-15 09:18:53'),\n",
       "  (311480171279671, '2019-05-20 10:32:07'),\n",
       "  (311480185104778, '2019-05-12 10:02:55'),\n",
       "  (311480297241213, '2019-05-12 12:37:57'),\n",
       "  (311480303403554, '2019-05-21 18:02:48'),\n",
       "  (311480306719307, '2019-05-15 12:33:56'),\n",
       "  (311480324384590, '2019-05-11 21:44:50'),\n",
       "  (311480340617176, '2019-05-21 14:23:25'),\n",
       "  (311480358079075, '2019-05-15 22:28:06'),\n",
       "  (311480396067751, '2019-05-21 13:02:56'),\n",
       "  (311480396067751, '2019-05-21 14:23:26'),\n",
       "  (311480425846389, '2019-05-17 15:26:16'),\n",
       "  (311480425846389, '2019-05-20 13:20:24'),\n",
       "  (311480441698660, '2019-05-12 19:05:21'),\n",
       "  (311480454127604, '2019-05-19 10:19:27'),\n",
       "  (311480477981596, '2019-05-12 10:23:09'),\n",
       "  (311480485812477, '2019-05-11 13:28:04'),\n",
       "  (312530002164201, '2019-05-18 11:47:03'),\n",
       "  (404112236373072, '2019-05-12 10:43:18'),\n",
       "  (404205000592275, '2019-05-17 11:07:07'),\n",
       "  (404205000592275, '2019-05-17 15:51:25'),\n",
       "  (404205003431290, '2019-05-12 13:02:13'),\n",
       "  (404205900251025, '2019-05-17 10:44:55'),\n",
       "  (404277280234167, '2019-05-11 22:58:28'),\n",
       "  (404277280234167, '2019-05-16 19:29:11'),\n",
       "  (404277291106339, '2019-05-10 12:11:57'),\n",
       "  (404277291106339, '2019-05-14 09:45:41'),\n",
       "  (404277291106339, '2019-05-14 17:30:08'),\n",
       "  (404400905422066, '2019-05-15 11:49:07'),\n",
       "  (404450951945746, '2019-05-12 11:13:27'),\n",
       "  (404450966530952, '2019-05-08 21:31:09'),\n",
       "  (404450966530952, '2019-05-09 18:54:11'),\n",
       "  (404450966530952, '2019-05-13 15:47:23'),\n",
       "  (404450966530952, '2019-05-14 11:58:03'),\n",
       "  (404450966530952, '2019-05-15 12:53:58'),\n",
       "  (404450966530952, '2019-05-15 16:56:09'),\n",
       "  (404450966530952, '2019-05-15 18:57:10'),\n",
       "  (404450966530952, '2019-05-16 18:54:57'),\n",
       "  (404450966530952, '2019-05-16 21:25:34'),\n",
       "  (404450966530952, '2019-05-20 16:56:41'),\n",
       "  (404450966530952, '2019-05-23 18:58:47'),\n",
       "  (404450966530952, '2019-05-23 21:29:28'),\n",
       "  (404450966530952, '2019-05-24 19:50:06'),\n",
       "  (404450982895417, '2019-05-20 10:20:00'),\n",
       "  (404450982895417, '2019-05-20 10:45:30'),\n",
       "  (404450982895417, '2019-05-20 10:47:05'),\n",
       "  (404920292393855, '2019-05-19 12:44:44'),\n",
       "  (404920292393855, '2019-05-19 12:50:11'),\n",
       "  (405874055158009, '2019-05-19 12:44:51'),\n",
       "  (405874055158009, '2019-05-19 12:49:39'),\n",
       "  (410040753262802, '2019-05-22 00:17:04'),\n",
       "  (410040753262802, '2019-05-22 13:09:04'),\n",
       "  (413027017958895, '2019-05-11 10:05:14'),\n",
       "  (414010054290105, '2019-05-10 10:21:27'),\n",
       "  (429010087111908, '2019-05-11 11:10:56'),\n",
       "  (432350263240874, '2019-05-19 10:23:26'),\n",
       "  (440103035269890, '2019-05-14 23:51:06'),\n",
       "  (440103040344657, '2019-05-17 18:35:09'),\n",
       "  (440103063479056, '2019-05-21 12:34:47'),\n",
       "  (440103101721271, '2019-05-18 11:35:05'),\n",
       "  (440103106625810, '2019-05-20 09:19:33'),\n",
       "  (440103127607986, '2019-05-11 14:14:35'),\n",
       "  (440103139679331, '2019-05-20 09:19:34'),\n",
       "  (440103173967545, '2019-05-18 18:48:44'),\n",
       "  (440103921552497, '2019-05-20 13:44:53'),\n",
       "  (440106047911764, '2019-05-10 13:36:46'),\n",
       "  (440106047911764, '2019-05-10 13:47:46'),\n",
       "  (440106047911764, '2019-05-10 13:58:12'),\n",
       "  (440106047911764, '2019-05-10 14:08:21'),\n",
       "  (440106047911764, '2019-05-10 14:18:31'),\n",
       "  (440106047911764, '2019-05-10 14:23:37'),\n",
       "  (440106047911764, '2019-05-10 14:23:42'),\n",
       "  (440106047911764, '2019-05-10 14:33:54'),\n",
       "  (440106047911764, '2019-05-10 14:44:32'),\n",
       "  (440106047911764, '2019-05-20 18:37:28'),\n",
       "  (440208110893156, '2019-05-13 15:10:44'),\n",
       "  (440208118780318, '2019-05-10 17:55:52'),\n",
       "  (440208161456664, '2019-05-12 14:18:56'),\n",
       "  (440208165196092, '2019-05-23 09:52:36'),\n",
       "  (440208165196092, '2019-05-23 14:41:28'),\n",
       "  (440208173910785, '2019-05-20 12:01:02'),\n",
       "  (440208173910785, '2019-05-20 13:17:15'),\n",
       "  (440208181221206, '2019-05-18 15:21:17'),\n",
       "  (440208183614689, '2019-05-22 17:57:49'),\n",
       "  (440208187552584, '2019-05-12 10:46:47'),\n",
       "  (440208197118521, '2019-05-16 09:27:30'),\n",
       "  (440208197118521, '2019-05-17 18:35:08'),\n",
       "  (440500692166977, '2019-05-13 18:51:13'),\n",
       "  (440501416996695, '2019-05-12 13:24:36'),\n",
       "  (440501416996695, '2019-05-12 13:26:14'),\n",
       "  (440501416996695, '2019-05-20 17:34:57'),\n",
       "  (440501416996695, '2019-05-20 19:20:22'),\n",
       "  (440501416996695, '2019-05-20 19:20:49'),\n",
       "  (440501453568093, '2019-05-12 07:59:42'),\n",
       "  (440501453568093, '2019-05-12 14:13:48'),\n",
       "  (440512032770798, '2019-05-16 09:27:31'),\n",
       "  (440512032770798, '2019-05-17 18:35:08'),\n",
       "  (440512037351097, '2019-05-16 09:26:51'),\n",
       "  (440512055624047, '2019-05-11 14:14:34'),\n",
       "  (450050236937475, '2019-05-23 11:32:27'),\n",
       "  (450050623429621, '2019-05-17 11:06:38'),\n",
       "  (450050660437934, '2019-05-23 11:12:23'),\n",
       "  (450050893265434, '2019-05-09 11:11:46'),\n",
       "  (450050893265434, '2019-05-22 14:54:33'),\n",
       "  (450050893265434, '2019-05-23 12:15:29'),\n",
       "  (450050893265434, '2019-05-24 14:25:18'),\n",
       "  (450050900942738, '2019-05-12 12:57:25'),\n",
       "  (450050990047985, '2019-05-09 19:00:41'),\n",
       "  (450061058023652, '2019-05-21 11:59:12'),\n",
       "  (450061068482888, '2019-05-15 13:02:01'),\n",
       "  (450061075444869, '2019-05-24 15:44:14'),\n",
       "  (450061076372035, '2019-05-11 18:03:35'),\n",
       "  (450061083359089, '2019-05-16 08:41:03'),\n",
       "  (450061090016397, '2019-05-24 14:25:47'),\n",
       "  (450061095500401, '2019-05-15 10:07:23'),\n",
       "  (450086160172535, '2019-05-23 14:16:54'),\n",
       "  (450086430090180, '2019-05-17 16:27:29'),\n",
       "  (450086450039086, '2019-05-11 10:31:52'),\n",
       "  (450086450039086, '2019-05-11 10:37:23'),\n",
       "  (450086680158204, '2019-05-21 11:47:46'),\n",
       "  (450086680158204, '2019-05-21 11:58:18'),\n",
       "  (450086860034067, '2019-05-15 20:48:12'),\n",
       "  (450086900103954, '2019-05-14 19:02:54'),\n",
       "  (450086900103954, '2019-05-16 17:54:52'),\n",
       "  (450088380061881, '2019-05-15 13:07:37'),\n",
       "  (450088560059846, '2019-05-23 11:12:25'),\n",
       "  (452019167469216, '2019-05-11 14:48:56'),\n",
       "  (452019167469216, '2019-05-11 16:20:22'),\n",
       "  (452021080014355, '2019-05-23 16:43:16'),\n",
       "  (452021085113293, '2019-05-23 17:05:31'),\n",
       "  (452021085113293, '2019-05-23 17:17:06'),\n",
       "  (452040004849761, '2019-05-16 15:45:45'),\n",
       "  (454000066707006, '2019-05-11 10:24:34'),\n",
       "  (454000066755082, '2019-05-11 11:43:56'),\n",
       "  (454000067027255, '2019-05-18 15:54:58'),\n",
       "  (454000067232712, '2019-05-11 12:53:32'),\n",
       "  (454000075897210, '2019-05-13 11:39:25'),\n",
       "  (454000075997371, '2019-05-15 19:08:24'),\n",
       "  (454000075997371, '2019-05-16 10:30:54'),\n",
       "  (454000075997371, '2019-05-16 12:51:53'),\n",
       "  (454000075997371, '2019-05-20 12:47:54'),\n",
       "  (454000075997371, '2019-05-22 10:22:44'),\n",
       "  (454000076245433, '2019-05-13 13:38:11'),\n",
       "  (454000076253213, '2019-05-12 12:39:56'),\n",
       "  (454000076301435, '2019-05-23 17:07:42'),\n",
       "  (454001060106126, '2019-05-22 12:32:11'),\n",
       "  (454001060206451, '2019-05-09 14:15:14'),\n",
       "  (454001060219383, '2019-05-09 18:33:03'),\n",
       "  (454001060219526, '2019-05-22 16:36:45'),\n",
       "  (454001060219976, '2019-05-09 16:41:25'),\n",
       "  (454001070212691, '2019-05-15 15:17:32'),\n",
       "  (454003061044357, '2019-05-13 10:37:47'),\n",
       "  (454003061044357, '2019-05-13 10:38:00'),\n",
       "  (454003061044357, '2019-05-13 10:50:06'),\n",
       "  (454003061044358, '2019-05-13 10:37:33'),\n",
       "  (454003061044358, '2019-05-13 10:38:55'),\n",
       "  (454003061148797, '2019-05-12 12:37:55'),\n",
       "  (454003061200993, '2019-05-12 13:24:13'),\n",
       "  (454003061215710, '2019-05-12 10:38:28'),\n",
       "  (454003061218237, '2019-05-13 13:57:15'),\n",
       "  (454003061218237, '2019-05-13 14:23:36'),\n",
       "  (454003061222124, '2019-05-19 13:45:35'),\n",
       "  (454003061320844, '2019-05-13 11:56:33'),\n",
       "  (454003061320844, '2019-05-13 15:09:10'),\n",
       "  (454003061360779, '2019-05-13 11:18:31'),\n",
       "  (454003061392868, '2019-05-13 10:55:21'),\n",
       "  (454003061405204, '2019-05-19 11:57:19'),\n",
       "  (454003061405204, '2019-05-19 12:07:13'),\n",
       "  (454003061405204, '2019-05-19 12:16:01'),\n",
       "  (454003061405204, '2019-05-19 12:57:32'),\n",
       "  (454003061405204, '2019-05-19 13:11:43'),\n",
       "  (454003061421736, '2019-05-13 10:48:55'),\n",
       "  (454003061425295, '2019-05-12 09:58:52'),\n",
       "  (454003061446377, '2019-05-13 11:28:49'),\n",
       "  (454003061446377, '2019-05-13 12:02:54'),\n",
       "  (454003061446377, '2019-05-13 13:22:03'),\n",
       "  (454003061452675, '2019-05-15 11:57:36'),\n",
       "  (454003061452675, '2019-05-15 12:40:24'),\n",
       "  (454003061452675, '2019-05-15 15:05:44'),\n",
       "  (454003061535940, '2019-05-12 11:49:05'),\n",
       "  (454003061535940, '2019-05-12 12:17:41'),\n",
       "  (454003061539555, '2019-05-19 10:33:37'),\n",
       "  (454003061550855, '2019-05-12 11:43:04'),\n",
       "  (454003061560726, '2019-05-12 10:38:33'),\n",
       "  (454003061566977, '2019-05-13 12:09:29'),\n",
       "  (454003061594283, '2019-05-12 13:05:49'),\n",
       "  (454003061594283, '2019-05-12 13:21:55'),\n",
       "  (454003061597459, '2019-05-12 13:39:40'),\n",
       "  (454003061602562, '2019-05-13 11:52:46'),\n",
       "  (454003061602562, '2019-05-13 12:01:25'),\n",
       "  (454003061608468, '2019-05-13 13:44:56'),\n",
       "  (454003061619851, '2019-05-11 12:34:45'),\n",
       "  (454003061632746, '2019-05-12 12:06:58'),\n",
       "  (454003061632746, '2019-05-12 12:21:19'),\n",
       "  (454003061636882, '2019-05-13 13:09:59'),\n",
       "  (454003061636882, '2019-05-13 13:38:13'),\n",
       "  (454003061638704, '2019-05-19 12:37:05'),\n",
       "  (454003061638704, '2019-05-19 12:45:16'),\n",
       "  (454003061638704, '2019-05-19 12:49:28'),\n",
       "  (454003061639920, '2019-05-13 11:13:12'),\n",
       "  (454003061639920, '2019-05-13 11:18:44'),\n",
       "  (454003061643766, '2019-05-13 12:58:19'),\n",
       "  (454003061643766, '2019-05-13 17:36:46'),\n",
       "  (454003061647483, '2019-05-11 10:49:44'),\n",
       "  (454003061649432, '2019-05-12 10:20:35'),\n",
       "  (454003061649432, '2019-05-12 13:44:47'),\n",
       "  (454003061649432, '2019-05-12 13:46:46'),\n",
       "  (454003061651324, '2019-05-11 13:16:32'),\n",
       "  (454003061653920, '2019-05-13 10:48:39'),\n",
       "  (454003061658594, '2019-05-19 12:58:15'),\n",
       "  (454003061658805, '2019-05-24 13:05:09'),\n",
       "  (454003061658805, '2019-05-24 13:22:23'),\n",
       "  (454003061658805, '2019-05-24 15:49:56'),\n",
       "  (454003061665617, '2019-05-12 11:17:17'),\n",
       "  (454003061667216, '2019-05-23 13:39:45'),\n",
       "  (454003070826578, '2019-05-11 12:38:30'),\n",
       "  (454003070826578, '2019-05-18 12:41:31'),\n",
       "  (454003070826578, '2019-05-19 11:48:16'),\n",
       "  (454003071394990, '2019-05-21 13:25:10'),\n",
       "  (454003071394990, '2019-05-21 14:25:51'),\n",
       "  (454003071394990, '2019-05-21 14:39:34'),\n",
       "  (454003071481220, '2019-05-12 12:19:19'),\n",
       "  (454003071481220, '2019-05-12 12:35:25'),\n",
       "  (454003071481220, '2019-05-12 14:04:25'),\n",
       "  (454003071481220, '2019-05-12 14:09:54'),\n",
       "  (454003071561380, '2019-05-13 12:57:51'),\n",
       "  (454003071561509, '2019-05-11 12:30:34'),\n",
       "  (454003071561509, '2019-05-13 12:38:54'),\n",
       "  (454003071561509, '2019-05-18 07:51:36'),\n",
       "  (454003071561509, '2019-05-18 14:01:22'),\n",
       "  (454003071565040, '2019-05-13 13:24:10'),\n",
       "  (454003071565040, '2019-05-13 13:46:38'),\n",
       "  (454003071565040, '2019-05-13 13:53:10'),\n",
       "  (454003071565040, '2019-05-13 16:35:39'),\n",
       "  (454003071572526, '2019-05-20 14:26:19'),\n",
       "  (454003071628558, '2019-05-12 12:29:12'),\n",
       "  (454003071753125, '2019-05-13 13:24:09'),\n",
       "  (454003071753125, '2019-05-13 13:45:35'),\n",
       "  (454003071753125, '2019-05-13 16:36:00'),\n",
       "  (454003071765174, '2019-05-11 21:26:44'),\n",
       "  (454003071770424, '2019-05-12 10:34:18'),\n",
       "  (454003071770424, '2019-05-12 11:02:30'),\n",
       "  (454003071773603, '2019-05-09 09:27:21'),\n",
       "  (454003071773603, '2019-05-09 15:32:40'),\n",
       "  (454003071773603, '2019-05-17 09:42:26'),\n",
       "  (454003071773603, '2019-05-17 15:17:43'),\n",
       "  (454003071781205, '2019-05-18 16:15:51'),\n",
       "  (454003071781205, '2019-05-18 16:18:44'),\n",
       "  (454003071781205, '2019-05-18 16:38:09'),\n",
       "  (454003071791304, '2019-05-19 12:23:05'),\n",
       "  (454003071897515, '2019-05-13 11:57:40'),\n",
       "  (454003071897515, '2019-05-13 11:58:05'),\n",
       "  (454003071912251, '2019-05-11 09:13:35'),\n",
       "  (454003071917618, '2019-05-13 11:38:16'),\n",
       "  (454003071917618, '2019-05-13 12:01:45'),\n",
       "  (454003071917618, '2019-05-13 12:39:51'),\n",
       "  (454003071917618, '2019-05-13 17:36:55'),\n",
       "  (454003071925718, '2019-05-11 11:21:18'),\n",
       "  (454003071926483, '2019-05-18 17:30:51'),\n",
       "  (454003071928185, '2019-05-11 11:50:26'),\n",
       "  (454003071928185, '2019-05-11 13:36:25'),\n",
       "  (454003071939862, '2019-05-13 11:57:58'),\n",
       "  (454003071940096, '2019-05-11 15:42:19'),\n",
       "  (454003071953727, '2019-05-13 11:53:44'),\n",
       "  (454003071953727, '2019-05-13 16:14:41'),\n",
       "  (454003071963185, '2019-05-12 13:28:16'),\n",
       "  (454003071982603, '2019-05-13 12:16:53'),\n",
       "  (454003072333008, '2019-05-11 14:27:11'),\n",
       "  (454003072428667, '2019-05-12 12:43:26'),\n",
       "  (454003072704463, '2019-05-12 11:58:19'),\n",
       "  (454003072788477, '2019-05-19 09:57:07'),\n",
       "  (454003072788477, '2019-05-19 10:21:50'),\n",
       "  (454003072788477, '2019-05-19 13:10:22'),\n",
       "  (454003072788477, '2019-05-19 13:33:14'),\n",
       "  (454003072795955, '2019-05-13 11:34:15'),\n",
       "  (454003072799492, '2019-05-12 11:24:39'),\n",
       "  (454003072832530, '2019-05-12 12:21:34'),\n",
       "  (454003072872482, '2019-05-12 12:52:19'),\n",
       "  (454003072897718, '2019-05-12 17:31:21'),\n",
       "  (454003072897718, '2019-05-12 17:35:46'),\n",
       "  (454003072897718, '2019-05-12 18:46:59'),\n",
       "  (454003072897718, '2019-05-12 21:00:58'),\n",
       "  (454003072897718, '2019-05-13 11:58:57'),\n",
       "  (454003072913482, '2019-05-13 10:48:13'),\n",
       "  (454003072996262, '2019-05-19 11:09:27'),\n",
       "  (454003073015773, '2019-05-12 11:09:50'),\n",
       "  (454003073026704, '2019-05-12 12:34:39'),\n",
       "  (454003073026704, '2019-05-12 12:41:52'),\n",
       "  (454003073054820, '2019-05-11 14:21:12'),\n",
       "  (454003073069933, '2019-05-12 12:37:55'),\n",
       "  (454003073178838, '2019-05-12 17:05:15'),\n",
       "  (454003073306562, '2019-05-17 07:50:39'),\n",
       "  (454003073308071, '2019-05-12 13:28:35'),\n",
       "  (454003073308071, '2019-05-12 14:18:27'),\n",
       "  (454003073308071, '2019-05-12 15:51:04'),\n",
       "  (454003073308071, '2019-05-12 15:56:51'),\n",
       "  (454003073308071, '2019-05-12 16:24:59'),\n",
       "  (454003073310282, '2019-05-12 13:05:06'),\n",
       "  (454003073315490, '2019-05-19 11:57:45'),\n",
       "  (454003073315490, '2019-05-19 13:10:11'),\n",
       "  (454003073324448, '2019-05-11 08:23:04'),\n",
       "  (454003073324448, '2019-05-11 18:03:35'),\n",
       "  (454003073403172, '2019-05-11 09:55:11'),\n",
       "  (454003073403172, '2019-05-11 22:17:31'),\n",
       "  (454003073408000, '2019-05-23 10:35:06'),\n",
       "  (454003073425596, '2019-05-15 11:57:24'),\n",
       "  (454003073425596, '2019-05-15 12:40:45'),\n",
       "  (454003073425596, '2019-05-15 12:44:59'),\n",
       "  (454003073425596, '2019-05-15 15:05:25'),\n",
       "  (454003073453348, '2019-05-21 13:25:41'),\n",
       "  (454003073453348, '2019-05-21 14:26:52'),\n",
       "  (454003073453348, '2019-05-21 14:42:53'),\n",
       "  (454003073453348, '2019-05-21 14:47:47'),\n",
       "  (454003073456456, '2019-05-13 13:30:16'),\n",
       "  (454003073459834, '2019-05-19 10:13:28'),\n",
       "  (454003073462409, '2019-05-13 11:36:03'),\n",
       "  (454003073468607, '2019-05-13 13:15:47'),\n",
       "  (454003073470347, '2019-05-13 11:38:14'),\n",
       "  (454003073470347, '2019-05-13 12:39:08'),\n",
       "  (454003073470347, '2019-05-13 17:36:52'),\n",
       "  (454003073497281, '2019-05-12 19:16:41'),\n",
       "  (454003073553043, '2019-05-11 14:20:59'),\n",
       "  (454003073553800, '2019-05-13 10:57:32'),\n",
       "  (454003073598630, '2019-05-13 13:16:26'),\n",
       "  (454003073598630, '2019-05-13 13:33:35'),\n",
       "  (454003073669198, '2019-05-11 10:50:48'),\n",
       "  (454003073740632, '2019-05-13 12:28:43'),\n",
       "  (454003073740632, '2019-05-13 12:39:37'),\n",
       "  (454003073830493, '2019-05-12 12:45:06'),\n",
       "  (454003073849996, '2019-05-12 11:15:10'),\n",
       "  (454003073849996, '2019-05-12 11:19:47'),\n",
       "  (454003073849996, '2019-05-12 11:26:38'),\n",
       "  (454003073849996, '2019-05-12 17:42:09'),\n",
       "  (454003073866392, '2019-05-10 21:04:26'),\n",
       "  (454003073921861, '2019-05-12 12:25:27'),\n",
       "  (454003073921861, '2019-05-12 12:37:51'),\n",
       "  (454003073921861, '2019-05-12 14:04:49'),\n",
       "  (454003073922834, '2019-05-13 10:03:12'),\n",
       "  (454003073922834, '2019-05-13 14:59:40'),\n",
       "  (454003073924848, '2019-05-11 15:16:27'),\n",
       "  (454003073924848, '2019-05-18 15:46:56'),\n",
       "  (454003073924848, '2019-05-19 07:44:41'),\n",
       "  (454003073924848, '2019-05-22 15:33:10'),\n",
       "  (454003073944364, '2019-05-12 13:48:35'),\n",
       "  (454003073992928, '2019-05-11 12:15:35'),\n",
       "  (454003073996337, '2019-05-13 11:35:17'),\n",
       "  (454003074003532, '2019-05-09 15:34:38'),\n",
       "  (454003074003532, '2019-05-15 15:07:46'),\n",
       "  (454003074003532, '2019-05-18 15:46:53'),\n",
       "  (454003074003532, '2019-05-18 19:43:19'),\n",
       "  (454003074003532, '2019-05-19 07:44:41'),\n",
       "  (454003074004254, '2019-05-17 10:25:31'),\n",
       "  (454003074015487, '2019-05-09 14:15:14'),\n",
       "  (454003074024380, '2019-05-24 10:30:15'),\n",
       "  (454003074033571, '2019-05-24 12:47:51'),\n",
       "  (454003074033571, '2019-05-24 16:32:37'),\n",
       "  (454003074046535, '2019-05-12 10:59:31'),\n",
       "  (454003074046535, '2019-05-12 16:49:23'),\n",
       "  (454003074093000, '2019-05-13 11:14:23'),\n",
       "  (454003074093000, '2019-05-13 16:54:23'),\n",
       "  (454003074161120, '2019-05-18 13:10:17'),\n",
       "  (454003074161120, '2019-05-24 17:44:41'),\n",
       "  (454003074161502, '2019-05-13 13:45:26'),\n",
       "  (454003074161502, '2019-05-13 17:57:30'),\n",
       "  (454003074161903, '2019-05-12 13:08:15'),\n",
       "  (454003074161903, '2019-05-12 14:19:45'),\n",
       "  (454003074161905, '2019-05-12 13:07:05'),\n",
       "  (454003074161905, '2019-05-12 14:18:09'),\n",
       "  (454003074163036, '2019-05-11 14:59:22'),\n",
       "  (454003074169534, '2019-05-12 11:07:37'),\n",
       "  (454003074169534, '2019-05-12 12:42:21'),\n",
       "  (454003074181778, '2019-05-17 13:03:44'),\n",
       "  (454003074181778, '2019-05-17 13:18:39'),\n",
       "  (454003074181778, '2019-05-17 16:30:12'),\n",
       "  (454003074186500, '2019-05-12 13:42:34'),\n",
       "  (454003074186500, '2019-05-12 13:49:19'),\n",
       "  (454003074186500, '2019-05-12 13:57:34'),\n",
       "  (454003074264754, '2019-05-12 09:29:22'),\n",
       "  (454003074264754, '2019-05-12 09:50:09'),\n",
       "  (454003074264754, '2019-05-12 10:19:49'),\n",
       "  (454003074302561, '2019-05-13 12:31:53'),\n",
       "  (454003074317879, '2019-05-23 14:15:47'),\n",
       "  (454003074360156, '2019-05-12 14:44:38'),\n",
       "  (454003074381624, '2019-05-16 14:23:26'),\n",
       "  (454003074383578, '2019-05-19 02:42:50'),\n",
       "  (454003074431803, '2019-05-16 18:44:49'),\n",
       "  (454003074431803, '2019-05-19 16:56:52'),\n",
       "  (454003074431803, '2019-05-19 17:03:09'),\n",
       "  (454003074444847, '2019-05-12 16:18:47'),\n",
       "  (454003074450769, '2019-05-13 13:43:33'),\n",
       "  (454003074451029, '2019-05-12 12:01:13'),\n",
       "  (454003074451134, '2019-05-14 13:52:59'),\n",
       "  (454003074451134, '2019-05-14 13:54:42'),\n",
       "  (454003074458284, '2019-05-11 12:34:57'),\n",
       "  (454003074470071, '2019-05-13 12:57:46'),\n",
       "  (454003074478295, '2019-05-13 11:56:18'),\n",
       "  (454003074478295, '2019-05-13 16:31:01'),\n",
       "  (454003074478674, '2019-05-16 11:15:45'),\n",
       "  (454003074482618, '2019-05-22 17:41:22'),\n",
       "  (454003074513678, '2019-05-11 23:26:05'),\n",
       "  (454003074520902, '2019-05-12 12:36:03'),\n",
       "  (454003074520902, '2019-05-12 12:38:20'),\n",
       "  (454003074520902, '2019-05-12 17:41:28'),\n",
       "  (454003074523723, '2019-05-13 11:07:08'),\n",
       "  (454003074524905, '2019-05-12 12:39:33'),\n",
       "  (454003074526369, '2019-05-13 10:39:37'),\n",
       "  (454003074526369, '2019-05-13 16:45:16'),\n",
       "  (454003074528397, '2019-05-19 12:37:17'),\n",
       "  (454003074528397, '2019-05-19 12:47:37'),\n",
       "  (454003074545886, '2019-05-12 09:59:03'),\n",
       "  (454003074545886, '2019-05-12 10:15:21'),\n",
       "  (454003074549386, '2019-05-13 12:19:14'),\n",
       "  (454003074549388, '2019-05-13 12:19:33'),\n",
       "  (454003074589224, '2019-05-11 12:14:45'),\n",
       "  (454003074601319, '2019-05-24 12:05:33'),\n",
       "  (454003074601319, '2019-05-24 12:11:51'),\n",
       "  (454003074601319, '2019-05-24 16:27:46'),\n",
       "  (454003074613791, '2019-05-12 12:12:00'),\n",
       "  (454003074613791, '2019-05-12 12:25:24'),\n",
       "  (454003074613791, '2019-05-12 17:05:38'),\n",
       "  (454003074613791, '2019-05-12 17:45:38'),\n",
       "  (454003074615033, '2019-05-13 11:33:56'),\n",
       "  (454003074635864, '2019-05-12 12:38:21'),\n",
       "  (454003074635864, '2019-05-12 17:37:55'),\n",
       "  (454003074638653, '2019-05-13 13:58:47'),\n",
       "  (454003074643373, '2019-05-11 09:13:35'),\n",
       "  (454003074643373, '2019-05-11 10:18:53'),\n",
       "  (454003074643373, '2019-05-11 10:58:29'),\n",
       "  (454003074643373, '2019-05-11 15:23:55'),\n",
       "  (454003074659681, '2019-05-12 10:19:19'),\n",
       "  (454003074674653, '2019-05-09 07:43:19'),\n",
       "  (454003074675281, '2019-05-12 11:40:28'),\n",
       "  (454003074678886, '2019-05-13 10:30:55'),\n",
       "  (454003074685796, '2019-05-13 12:22:18'),\n",
       "  (454003074685796, '2019-05-13 12:42:25'),\n",
       "  (454003074695628, '2019-05-13 12:00:51'),\n",
       "  (454003074701761, '2019-05-12 13:00:51'),\n",
       "  (454003074701761, '2019-05-12 15:12:48'),\n",
       "  (454003074705001, '2019-05-12 15:49:37'),\n",
       "  (454003074706285, '2019-05-18 15:06:11'),\n",
       "  (454003074710473, '2019-05-13 12:44:07'),\n",
       "  (454003074716543, '2019-05-18 08:45:28'),\n",
       "  (454003074716543, '2019-05-18 11:00:44'),\n",
       "  (454003074716543, '2019-05-18 12:12:23'),\n",
       "  (454003074716543, '2019-05-18 13:14:36'),\n",
       "  (454003074723011, '2019-05-19 13:08:22'),\n",
       "  (454003074732936, '2019-05-12 11:58:23'),\n",
       "  (454003074733771, '2019-05-12 10:39:28'),\n",
       "  (454003074733771, '2019-05-12 11:21:42'),\n",
       "  (454003074744167, '2019-05-13 12:17:00'),\n",
       "  (454003074747589, '2019-05-10 14:39:21'),\n",
       "  (454003074753069, '2019-05-13 09:55:18'),\n",
       "  (454003074753069, '2019-05-13 10:13:54'),\n",
       "  (454003074757958, '2019-05-11 12:17:04'),\n",
       "  (454003074785512, '2019-05-11 13:16:34'),\n",
       "  (454003074785512, '2019-05-11 18:42:48'),\n",
       "  (454003074789188, '2019-05-12 13:19:47'),\n",
       "  (454003074789188, '2019-05-12 13:26:36'),\n",
       "  (454003074790734, '2019-05-12 12:42:32'),\n",
       "  (454003074791619, '2019-05-11 12:18:58'),\n",
       "  (454003074793443, '2019-05-12 13:43:25'),\n",
       "  (454003074797517, '2019-05-09 13:07:25'),\n",
       "  (454003074799086, '2019-05-24 12:28:30'),\n",
       "  (454003074800597, '2019-05-11 14:37:29'),\n",
       "  (454003074807597, '2019-05-13 13:29:08'),\n",
       "  (454003074807599, '2019-05-13 13:24:52'),\n",
       "  (454003074807599, '2019-05-13 13:29:55'),\n",
       "  (454003074807599, '2019-05-13 13:38:05'),\n",
       "  (454003074807601, '2019-05-13 13:24:50'),\n",
       "  (454003074807601, '2019-05-13 13:29:49'),\n",
       "  (454003074807601, '2019-05-13 13:39:24'),\n",
       "  (454003074814103, '2019-05-13 10:32:40'),\n",
       "  (454003074814103, '2019-05-13 11:18:18'),\n",
       "  (454003074814515, '2019-05-17 11:59:53'),\n",
       "  (454003074814515, '2019-05-17 12:06:13'),\n",
       "  (454003074814890, '2019-05-19 13:31:21'),\n",
       "  (454003074818573, '2019-05-11 08:38:20'),\n",
       "  (454003074823167, '2019-05-09 14:12:25'),\n",
       "  (454003074825266, '2019-05-12 14:55:02'),\n",
       "  (454003074825266, '2019-05-12 15:01:08'),\n",
       "  (454003074830095, '2019-05-12 11:23:03'),\n",
       "  (454003074830095, '2019-05-12 12:02:39'),\n",
       "  (454003074832528, '2019-05-11 13:34:07'),\n",
       "  (454003074832528, '2019-05-11 13:35:15'),\n",
       "  (454003074832979, '2019-05-18 10:22:46'),\n",
       "  (454003074832979, '2019-05-18 10:30:13'),\n",
       "  (454003074832980, '2019-05-18 10:22:29'),\n",
       "  (454003074832980, '2019-05-18 10:30:47'),\n",
       "  (454003074842806, '2019-05-13 08:01:27'),\n",
       "  (454003074842806, '2019-05-14 07:32:12'),\n",
       "  (454003074842806, '2019-05-14 08:13:02'),\n",
       "  (454003074842806, '2019-05-14 14:47:47'),\n",
       "  (454003074845580, '2019-05-13 11:35:37'),\n",
       "  (454003074845758, '2019-05-11 10:30:02'),\n",
       "  (454003074845758, '2019-05-11 10:59:29'),\n",
       "  (454003074845848, '2019-05-19 13:31:21'),\n",
       "  (454003074879304, '2019-05-19 13:31:27'),\n",
       "  (454003074882389, '2019-05-19 14:05:50'),\n",
       "  (454003074882389, '2019-05-19 17:24:44'),\n",
       "  (454003074889976, '2019-05-21 13:47:58'),\n",
       "  (454003074893322, '2019-05-22 13:36:46'),\n",
       "  (454003074897651, '2019-05-09 09:24:02'),\n",
       "  (454003074931843, '2019-05-12 12:58:59'),\n",
       "  (454003074951185, '2019-05-19 12:03:36'),\n",
       "  (454003074951185, '2019-05-19 16:40:11'),\n",
       "  (454003074952708, '2019-05-11 12:32:39'),\n",
       "  (454003074952708, '2019-05-22 11:07:19'),\n",
       "  (454003074959304, '2019-05-11 11:56:23'),\n",
       "  (454003074959996, '2019-05-13 17:31:02'),\n",
       "  (454003074967495, '2019-05-24 12:29:40'),\n",
       "  (454003075277868, '2019-05-11 10:49:15'),\n",
       "  (454003075280604, '2019-05-12 12:27:36'),\n",
       "  (454003075289962, '2019-05-11 08:27:44'),\n",
       "  (454003075289962, '2019-05-11 13:46:37'),\n",
       "  (454003075289962, '2019-05-11 17:50:29'),\n",
       "  (454003075289962, '2019-05-11 19:59:40'),\n",
       "  (454003075312532, '2019-05-20 11:37:57'),\n",
       "  (454003075314659, '2019-05-19 12:43:44'),\n",
       "  (454003075314659, '2019-05-19 12:48:29'),\n",
       "  (454003075322156, '2019-05-12 10:52:01'),\n",
       "  (454003075322156, '2019-05-12 10:57:20'),\n",
       "  (454003075326478, '2019-05-22 14:29:51'),\n",
       "  (454003075326478, '2019-05-22 14:41:54'),\n",
       "  (454003075334612, '2019-05-13 12:10:19'),\n",
       "  (454003075336061, '2019-05-17 09:42:26'),\n",
       "  (454003075374636, '2019-05-24 11:57:05'),\n",
       "  (454003075374636, '2019-05-24 16:43:39'),\n",
       "  (454003075413804, '2019-05-12 11:47:05'),\n",
       "  (454003075421622, '2019-05-12 12:13:22'),\n",
       "  (454003075421623, '2019-05-12 12:13:11'),\n",
       "  (454003075427455, '2019-05-16 16:23:50'),\n",
       "  (454003075430955, '2019-05-12 11:05:21'),\n",
       "  (454003075430955, '2019-05-12 12:40:51'),\n",
       "  (454003075443988, '2019-05-12 13:17:35'),\n",
       "  (454003075468423, '2019-05-10 08:11:25'),\n",
       "  (454003075468423, '2019-05-10 08:22:35'),\n",
       "  (454003075477232, '2019-05-09 13:05:28'),\n",
       "  (454003075500530, '2019-05-11 12:16:37'),\n",
       "  (454003075500530, '2019-05-11 15:37:51'),\n",
       "  (454003075502111, '2019-05-13 13:50:00'),\n",
       "  (454003075509563, '2019-05-11 18:02:49'),\n",
       "  (454003075509563, '2019-05-11 18:04:59'),\n",
       "  (454003075515423, '2019-05-13 12:14:54'),\n",
       "  (454003075519342, '2019-05-11 09:26:47'),\n",
       "  (454003075536861, '2019-05-12 11:20:06'),\n",
       "  (454003075536861, '2019-05-12 17:09:45'),\n",
       "  (454003075538270, '2019-05-17 12:17:28'),\n",
       "  (454003075538270, '2019-05-17 16:17:48'),\n",
       "  (454003075570314, '2019-05-09 15:44:32'),\n",
       "  (454003075570314, '2019-05-11 10:46:36'),\n",
       "  (454003075570314, '2019-05-20 16:08:39'),\n",
       "  (454003075600579, '2019-05-12 09:59:09'),\n",
       "  (454003076000491, '2019-05-12 12:00:17'),\n",
       "  (454003076009361, '2019-05-22 11:57:25'),\n",
       "  (454003076009361, '2019-05-22 12:05:39'),\n",
       "  (454003076018452, '2019-05-11 13:33:55'),\n",
       "  (454003076018453, '2019-05-11 13:34:07'),\n",
       "  (454003076018453, '2019-05-11 13:39:27'),\n",
       "  (454003076018453, '2019-05-11 13:45:28'),\n",
       "  (454003076038807, '2019-05-12 11:45:21'),\n",
       "  (454003076038807, '2019-05-12 12:38:26'),\n",
       "  (454003076039376, '2019-05-12 12:25:11'),\n",
       "  (454003076039376, '2019-05-12 14:05:49'),\n",
       "  (454003076039376, '2019-05-12 14:06:12'),\n",
       "  (454003076044903, '2019-05-19 11:13:24'),\n",
       "  (454003076044903, '2019-05-19 11:18:30'),\n",
       "  (454003076046428, '2019-05-13 11:00:57'),\n",
       "  (454003076048865, '2019-05-15 11:27:58'),\n",
       "  (454003076049752, '2019-05-22 11:54:04'),\n",
       "  (454003076051078, '2019-05-19 12:40:29'),\n",
       "  (454003076054297, '2019-05-17 11:26:32'),\n",
       "  (454003076054297, '2019-05-20 17:43:07'),\n",
       "  (454003076054297, '2019-05-22 17:14:22'),\n",
       "  (454003076076278, '2019-05-12 12:59:55'),\n",
       "  (454003076078160, '2019-05-12 12:38:27'),\n",
       "  (454003076078160, '2019-05-12 17:35:35'),\n",
       "  (454003076097349, '2019-05-13 13:15:20'),\n",
       "  (454003076097349, '2019-05-13 13:19:53'),\n",
       "  (454003076101376, '2019-05-12 10:15:22'),\n",
       "  (454003076142915, '2019-05-18 11:53:08'),\n",
       "  (454003076142915, '2019-05-18 14:02:03'),\n",
       "  (454003076150441, '2019-05-19 09:57:09'),\n",
       "  (454003076150441, '2019-05-19 14:03:41'),\n",
       "  (454003076150441, '2019-05-19 15:03:43'),\n",
       "  (454003076150442, '2019-05-19 11:57:33'),\n",
       "  (454003076150442, '2019-05-19 15:02:41'),\n",
       "  (454003076154915, '2019-05-12 10:52:26'),\n",
       "  (454003076154915, '2019-05-12 11:31:13'),\n",
       "  (454003076161346, '2019-05-13 11:06:58'),\n",
       "  (454003076161346, '2019-05-13 11:22:59'),\n",
       "  (454003076174025, '2019-05-13 11:58:36'),\n",
       "  (454003076179797, '2019-05-13 11:22:48'),\n",
       "  (454003076182200, '2019-05-12 12:47:30'),\n",
       "  (454003076182200, '2019-05-12 12:59:46'),\n",
       "  (454003076216348, '2019-05-12 12:07:32'),\n",
       "  (454003076244856, '2019-05-18 17:57:11'),\n",
       "  (454003076253724, '2019-05-12 12:38:28'),\n",
       "  (454003076261688, '2019-05-13 11:07:08'),\n",
       "  (454003076261688, '2019-05-13 11:16:51'),\n",
       "  (454003076261688, '2019-05-13 11:22:54'),\n",
       "  (454003076275898, '2019-05-12 07:27:23'),\n",
       "  (454003076298164, '2019-05-23 17:35:53'),\n",
       "  (454003076311709, '2019-05-12 13:04:06'),\n",
       "  (454003076311709, '2019-05-12 13:46:38'),\n",
       "  (454003076311709, '2019-05-12 18:06:56'),\n",
       "  (454003076330997, '2019-05-13 12:00:48'),\n",
       "  (454003076331347, '2019-05-11 12:15:54'),\n",
       "  (454003076333148, '2019-05-12 11:49:53'),\n",
       "  (454003076337325, '2019-05-11 12:39:38'),\n",
       "  (454003076361678, '2019-05-12 11:55:45'),\n",
       "  (454003076361678, '2019-05-12 12:01:20'),\n",
       "  (454003076377393, '2019-05-19 11:17:38'),\n",
       "  (454003076378307, '2019-05-13 10:40:50'),\n",
       "  (454003076378307, '2019-05-13 17:10:28'),\n",
       "  (454003076384650, '2019-05-13 12:17:43'),\n",
       "  (454003076391623, '2019-05-13 11:01:03'),\n",
       "  (454003076412630, '2019-05-12 11:07:55'),\n",
       "  (454003076412630, '2019-05-12 11:44:37'),\n",
       "  (454003076464910, '2019-05-13 12:57:48'),\n",
       "  (454003076464910, '2019-05-13 12:58:20'),\n",
       "  (454003076464910, '2019-05-13 17:44:49'),\n",
       "  (454003076474964, '2019-05-13 11:58:16'),\n",
       "  (454003076502839, '2019-05-12 13:39:38'),\n",
       "  (454003076514695, '2019-05-11 11:48:28'),\n",
       "  (454003076521990, '2019-05-11 12:58:47'),\n",
       "  (454003076521990, '2019-05-11 13:30:02'),\n",
       "  (454003076521990, '2019-05-11 13:36:15'),\n",
       "  (454003076531607, '2019-05-12 11:57:28'),\n",
       "  (454003076531619, '2019-05-12 11:57:32'),\n",
       "  (454003076540655, '2019-05-13 13:51:13'),\n",
       "  (454003076548264, '2019-05-14 13:51:06'),\n",
       "  (454003076586398, '2019-05-09 18:14:14'),\n",
       "  (454003076586447, '2019-05-12 15:04:40'),\n",
       "  (454003076587835, '2019-05-11 14:37:25'),\n",
       "  (454003076593060, '2019-05-18 16:34:40'),\n",
       "  (454003076593060, '2019-05-18 16:40:00'),\n",
       "  (454003076594367, '2019-05-20 11:48:23'),\n",
       "  (454003076594367, '2019-05-21 13:24:36'),\n",
       "  (454003076594367, '2019-05-21 14:26:39'),\n",
       "  (454003076594367, '2019-05-21 14:43:00'),\n",
       "  (454003076594367, '2019-05-21 14:48:17'),\n",
       "  (454003076605369, '2019-05-16 15:45:47'),\n",
       "  (454003076605369, '2019-05-16 16:23:26'),\n",
       "  (454003076626990, '2019-05-16 10:36:05'),\n",
       "  (454003076643879, '2019-05-12 11:06:21'),\n",
       "  (454003076664582, '2019-05-13 12:35:09'),\n",
       "  (454003076664582, '2019-05-13 12:57:58'),\n",
       "  (454003076683363, '2019-05-19 09:57:06'),\n",
       "  (454003076683363, '2019-05-19 10:20:06'),\n",
       "  (454003076683363, '2019-05-19 13:11:12'),\n",
       "  (454003076683363, '2019-05-19 13:33:12'),\n",
       "  (454003076684834, '2019-05-13 11:22:52'),\n",
       "  (454003076702771, '2019-05-12 11:37:24'),\n",
       "  (454003076702771, '2019-05-12 13:06:52'),\n",
       "  (454003076702771, '2019-05-12 16:22:25'),\n",
       "  (454003076702772, '2019-05-12 11:29:22'),\n",
       "  (454003076702772, '2019-05-12 11:38:55'),\n",
       "  (454003076702772, '2019-05-12 16:19:28'),\n",
       "  (454003076745164, '2019-05-13 11:21:48'),\n",
       "  (454003076745164, '2019-05-13 11:55:17'),\n",
       "  (454003076745164, '2019-05-13 15:51:31'),\n",
       "  (454003076750461, '2019-05-13 13:03:46'),\n",
       "  (454003076752428, '2019-05-13 13:25:24'),\n",
       "  (454003076752428, '2019-05-13 13:30:54'),\n",
       "  (454003076761871, '2019-05-12 12:11:12'),\n",
       "  (454003076761871, '2019-05-12 12:19:12'),\n",
       "  (454003076761871, '2019-05-12 12:29:00'),\n",
       "  (454003076761871, '2019-05-12 17:05:48'),\n",
       "  (454003076761871, '2019-05-12 17:48:20'),\n",
       "  (454003076767109, '2019-05-12 13:20:56'),\n",
       "  (454003076767109, '2019-05-12 13:27:02'),\n",
       "  (454003076783500, '2019-05-12 13:40:13'),\n",
       "  (454003076801063, '2019-05-12 11:32:08'),\n",
       "  (454003076806456, '2019-05-12 13:03:06'),\n",
       "  (454003076815059, '2019-05-24 15:18:27'),\n",
       "  (454003076815406, '2019-05-21 13:26:23'),\n",
       "  (454003076815406, '2019-05-21 14:27:05'),\n",
       "  (454003076815406, '2019-05-21 14:43:05'),\n",
       "  (454003076815406, '2019-05-21 14:51:43'),\n",
       "  (454003076890402, '2019-05-19 14:15:24'),\n",
       "  (454003076898732, '2019-05-12 12:27:21'),\n",
       "  (454003076900017, '2019-05-19 13:40:29'),\n",
       "  (454003076904683, '2019-05-12 11:46:48'),\n",
       "  (454003076904683, '2019-05-12 15:24:54'),\n",
       "  (454003076904683, '2019-05-12 15:55:36'),\n",
       "  (454003076914625, '2019-05-12 12:00:05'),\n",
       "  (454003076917806, '2019-05-24 12:13:52'),\n",
       "  (454003076923400, '2019-05-12 11:23:03'),\n",
       "  (454003076923400, '2019-05-12 12:07:27'),\n",
       "  (454003076925280, '2019-05-22 15:50:06'),\n",
       "  (454003076925280, '2019-05-22 15:50:46'),\n",
       "  (454003076928958, '2019-05-21 14:19:57'),\n",
       "  (454003076928958, '2019-05-21 16:19:31'),\n",
       "  (454003076936220, '2019-05-12 11:22:01'),\n",
       "  (454003076936220, '2019-05-12 18:26:38'),\n",
       "  (454003076950954, '2019-05-12 11:06:37'),\n",
       "  (454003076952147, '2019-05-17 08:46:15'),\n",
       "  (454003076957271, '2019-05-11 11:00:46'),\n",
       "  (454003076957271, '2019-05-11 11:04:34'),\n",
       "  (454003076966583, '2019-05-13 11:35:08'),\n",
       "  (454003076972169, '2019-05-17 21:53:14'),\n",
       "  (454003076975260, '2019-05-15 15:53:40'),\n",
       "  (454003076975260, '2019-05-16 12:05:57'),\n",
       "  (454003076975553, '2019-05-13 13:26:53'),\n",
       "  (454003076975553, '2019-05-13 16:12:59'),\n",
       "  (454003076981814, '2019-05-12 14:35:15'),\n",
       "  (454003076981814, '2019-05-12 14:43:19'),\n",
       "  (454003077013104, '2019-05-13 11:52:32'),\n",
       "  (454003077013104, '2019-05-13 12:04:30'),\n",
       "  (454003077031955, '2019-05-12 10:52:26'),\n",
       "  (454003077031955, '2019-05-12 11:31:20'),\n",
       "  (454003077031956, '2019-05-12 10:52:27'),\n",
       "  (454003077031956, '2019-05-12 11:31:11'),\n",
       "  (454003077032055, '2019-05-22 12:17:07'),\n",
       "  (454003077048352, '2019-05-22 10:54:07'),\n",
       "  (454003077055163, '2019-05-14 15:23:36'),\n",
       "  (454003077056469, '2019-05-12 13:06:21'),\n",
       "  (454003077056469, '2019-05-12 13:20:56'),\n",
       "  (454003077057880, '2019-05-19 12:18:49'),\n",
       "  (454003077057880, '2019-05-19 17:44:49'),\n",
       "  (454003077057880, '2019-05-23 12:01:05'),\n",
       "  (454003077057880, '2019-05-23 17:40:22'),\n",
       "  (454003077069886, '2019-05-13 10:36:11'),\n",
       "  (454003077069887, '2019-05-13 10:36:13'),\n",
       "  (454003077073797, '2019-05-13 10:47:51'),\n",
       "  (454003077089027, '2019-05-18 08:05:43'),\n",
       "  (454003077089855, '2019-05-19 14:15:11'),\n",
       "  (454003077123766, '2019-05-12 11:28:35'),\n",
       "  (454003077123766, '2019-05-12 11:40:36'),\n",
       "  (454003077123766, '2019-05-12 16:19:21'),\n",
       "  (454003077904647, '2019-05-13 11:54:34'),\n",
       "  (454003077904771, '2019-05-13 13:20:00'),\n",
       "  (454003077927191, '2019-05-18 12:28:39'),\n",
       "  (454003077927191, '2019-05-18 16:18:39'),\n",
       "  (454003078024524, '2019-05-12 12:18:00'),\n",
       "  (454003078040769, '2019-05-13 12:14:55'),\n",
       "  (454003078058889, '2019-05-19 10:35:55'),\n",
       "  (454003078058889, '2019-05-19 14:13:39'),\n",
       "  (454003078120336, '2019-05-13 13:22:33'),\n",
       "  (454003078120336, '2019-05-13 15:48:29'),\n",
       "  (454003078120336, '2019-05-13 15:58:08'),\n",
       "  (454003078215493, '2019-05-12 11:49:06'),\n",
       "  (454003078249384, '2019-05-11 10:50:24'),\n",
       "  (454003078249384, '2019-05-11 10:56:49'),\n",
       "  (454003078335572, '2019-05-11 10:57:16'),\n",
       "  (454006060070873, '2019-05-15 12:54:38'),\n",
       "  (454006060070873, '2019-05-15 12:55:50'),\n",
       "  (454006060070873, '2019-05-15 13:07:34'),\n",
       "  (454006060129797, '2019-05-12 12:44:56'),\n",
       "  (454006060136363, '2019-05-13 13:22:33'),\n",
       "  (454006060136363, '2019-05-13 15:48:08'),\n",
       "  (454006060143587, '2019-05-12 14:05:14'),\n",
       "  (454006060182720, '2019-05-19 12:37:15'),\n",
       "  (454006060182720, '2019-05-19 12:50:16'),\n",
       "  (454006060186247, '2019-05-12 14:03:03'),\n",
       "  (454006060221231, '2019-05-12 11:59:59'),\n",
       "  (454006060221231, '2019-05-12 13:44:33'),\n",
       "  (454006060248043, '2019-05-12 12:02:05'),\n",
       "  (454006060265536, '2019-05-11 11:00:39'),\n",
       "  (454006060328037, '2019-05-13 12:25:37'),\n",
       "  (454006060328037, '2019-05-13 12:29:01'),\n",
       "  (454006060328037, '2019-05-13 12:38:46'),\n",
       "  (454006060336461, '2019-05-12 12:43:28'),\n",
       "  (454006060415681, '2019-05-12 12:21:56'),\n",
       "  (454006060417546, '2019-05-22 12:28:02'),\n",
       "  (454006060433494, '2019-05-13 11:03:06'),\n",
       "  (454006060440794, '2019-05-13 10:39:09'),\n",
       "  ...],\n",
       " 'columns': ['DX-SZSC001', 'LT-SZSC001', 'YD-SZSC001'],\n",
       " 'data': [[1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 0, 1],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [0, 1, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  [1, 0, 0],\n",
       "  ...]}"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 开始数据存储\n",
    "res.to_dict('split')\n",
    "    \n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 新入网，新离网探索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:14</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:40</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:08:55</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_         update_time_  lac_  cellid_  \\\n",
       "update_time_                                                               \n",
       "2019-05-08 20:09:29  460110413044304  2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577  2019-05-08 20:09:41     0        0   \n",
       "2019-05-08 20:10:14  460110425023300  2019-05-08 20:10:14     0        0   \n",
       "2019-05-08 20:10:40  460110714141865  2019-05-08 20:10:40     0        0   \n",
       "2019-05-08 20:08:55  460016692088409  2019-05-08 20:08:55     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  \n",
       "update_time_                                                  \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:10:14      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:10:40      拒绝  FDD-LTE  DX-SZSC001  Normal Lau  \n",
       "2019-05-08 20:08:55      拒绝  FDD-LTE  LT-SZSC001  Normal Lau  "
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8981"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1[(data1.index.day == 8) | (data1.index.day == 9)].imsi_.nunique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "92509"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.imsi_.nunique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = range(1, 12)\n",
    "res = []\n",
    "for i in x:\n",
    "    temp = ''.join(['0',str(8 + i)]) if i < 2 else str(8 + i)\n",
    "    res.append(data1.imsi_['20190508':'201905' + f'{temp}'].nunique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[8981, 14134, 24113, 32416, 37988, 42338, 46717, 51073, 55330, 61748, 67407]"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[5153, 9979, 8303, 5572, 4350, 4379, 4356, 4257, 6418, 5659]"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp = []\n",
    "for i in range(1,len(res)):\n",
    "    temp.append(res[i]-res[i-1])\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f25966344f0>]"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x, res)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f25965614f0>]"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(range(len(temp)), temp) # 可以看到前几天增加人数一直在变多，后面就增加数变得平稳"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 用户的出现频率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "      <th>Frequency</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>1287</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:14</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:40</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>2526</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:08:55</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_        update_time_  lac_  cellid_  \\\n",
       "update_time_                                                              \n",
       "2019-05-08 20:09:29  460110413044304 2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577 2019-05-08 20:09:41     0        0   \n",
       "2019-05-08 20:10:14  460110425023300 2019-05-08 20:10:14     0        0   \n",
       "2019-05-08 20:10:40  460110714141865 2019-05-08 20:10:40     0        0   \n",
       "2019-05-08 20:08:55  460016692088409 2019-05-08 20:08:55     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  Frequency  \n",
       "update_time_                                                             \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       1287  \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          7  \n",
       "2019-05-08 20:10:14      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          4  \n",
       "2019-05-08 20:10:40      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       2526  \n",
       "2019-05-08 20:08:55      拒绝  FDD-LTE  LT-SZSC001  Normal Lau         14  "
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [],
   "source": [
    "data1['Frequency'] = data1.imsi_.map(data1.imsi_.value_counts())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "data1.update_time_ = pd.to_datetime(data1.update_time_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "'Series' object has no attribute 'week'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-137-9a04031f69dc>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdata1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate_time_\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweek\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/miniconda3/lib/python3.8/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m__getattr__\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m   5128\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5129\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5130\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   5131\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5132\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__setattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mAttributeError\u001b[0m: 'Series' object has no attribute 'week'"
     ]
    }
   ],
   "source": [
    "data1.update_time_.week"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [],
   "source": [
    "data2 = data1.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [],
   "source": [
    "data2.index = data1.update_time_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-135-216dc2116ae2>:1: FutureWarning: weekofyear and week have been deprecated, please use DatetimeIndex.isocalendar().week instead, which returns a Series.  To exactly reproduce the behavior of week and weekofyear and return an Index, you may call pd.Int64Index(idx.isocalendar().week)\n",
      "  data2.index.week\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Int64Index([19, 19, 19, 19, 19, 19, 19, 19, 19, 19,\n",
       "            ...\n",
       "            21, 21, 21, 21, 21, 21, 21, 21, 21, 21],\n",
       "           dtype='int64', name='update_time_', length=338898)"
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.index.week"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [],
   "source": [
    "data3 = data1[data1.Frequency > 2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [],
   "source": [
    "data3.index = data3.update_time_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-140-0a591cb1dd1f>:1: FutureWarning: weekofyear and week have been deprecated, please use DatetimeIndex.isocalendar().week instead, which returns a Series.  To exactly reproduce the behavior of week and weekofyear and return an Index, you may call pd.Int64Index(idx.isocalendar().week)\n",
      "  data3.groupby(['imsi_',data3.index.week])['device_id_'].value_counts().unstack(fill_value=0)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id_</th>\n",
       "      <th>DX-SZSC001</th>\n",
       "      <th>LT-SZSC001</th>\n",
       "      <th>YD-SZSC001</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">222992312514644</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>0</td>\n",
       "      <td>17</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>228017227822524</th>\n",
       "      <th>20</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>228017228577400</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>505025813590958</th>\n",
       "      <th>21</th>\n",
       "      <td>9</td>\n",
       "      <td>287</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">525037903421171</th>\n",
       "      <th>19</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525058181486477</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525058231350753</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>35383 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "device_id_                    DX-SZSC001  LT-SZSC001  YD-SZSC001\n",
       "imsi_           update_time_                                    \n",
       "222992312514644 19                     0           7           0\n",
       "                20                     0          17           0\n",
       "                21                     0          10           0\n",
       "228017227822524 20                     0           0           3\n",
       "228017228577400 19                     0           3           0\n",
       "...                                  ...         ...         ...\n",
       "505025813590958 21                     9         287           0\n",
       "525037903421171 19                     1           0           1\n",
       "                20                     0           0           1\n",
       "525058181486477 19                     0           1           2\n",
       "525058231350753 19                     0           0           5\n",
       "\n",
       "[35383 rows x 3 columns]"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data3.groupby(['imsi_',data3.index.week])['device_id_'].value_counts().unstack(fill_value=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "'Series' object has no attribute 'week'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-129-8270a4d6aec0>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdata1\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mdata1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFrequency\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'imsi_'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdata1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate_time_\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mweek\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'device_id_'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalue_counts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfill_value\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/miniconda3/lib/python3.8/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m__getattr__\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m   5128\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5129\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5130\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   5131\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5132\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__setattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mAttributeError\u001b[0m: 'Series' object has no attribute 'week'"
     ]
    }
   ],
   "source": [
    "data1[data1.Frequency > 2].groupby(['imsi_',data1.update_time_.week])['device_id_'].value_counts().unstack(fill_value=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-115-d61b18b47ce4>:1: FutureWarning: weekofyear and week have been deprecated, please use DatetimeIndex.isocalendar().week instead, which returns a Series.  To exactly reproduce the behavior of week and weekofyear and return an Index, you may call pd.Int64Index(idx.isocalendar().week)\n",
      "  data1.groupby(['imsi_',data1.index.week])['device_id_'].value_counts().unstack(fill_value=0)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id_</th>\n",
       "      <th>DX-SZSC001</th>\n",
       "      <th>LT-SZSC001</th>\n",
       "      <th>YD-SZSC001</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>204043315383882</th>\n",
       "      <th>21</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204043863737390</th>\n",
       "      <th>21</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204046031010732</th>\n",
       "      <th>19</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>204047102616026</th>\n",
       "      <th>20</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>206012229081504</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525058179845887</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525058181486477</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525058231216945</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525058231350753</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>641101902316484</th>\n",
       "      <th>20</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>114456 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "device_id_                    DX-SZSC001  LT-SZSC001  YD-SZSC001\n",
       "imsi_           update_time_                                    \n",
       "204043315383882 21                     1           0           0\n",
       "204043863737390 21                     1           0           0\n",
       "204046031010732 19                     1           0           0\n",
       "204047102616026 20                     0           1           0\n",
       "206012229081504 19                     0           0           1\n",
       "...                                  ...         ...         ...\n",
       "525058179845887 19                     0           0           1\n",
       "525058181486477 19                     0           1           2\n",
       "525058231216945 19                     0           0           1\n",
       "525058231350753 19                     0           0           5\n",
       "641101902316484 20                     0           0           1\n",
       "\n",
       "[114456 rows x 3 columns]"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.groupby(['imsi_',data1.index.day])['device_id_'].value_counts().unstack(fill_value=0)\n",
    "\n",
    "data1.groupby(['imsi_',data1.index.month])['device_id_'].value_counts().unstack(fill_value=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "      <th>Frequency</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>1287</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_        update_time_  lac_  cellid_  \\\n",
       "update_time_                                                              \n",
       "2019-05-08 20:09:29  460110413044304 2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577 2019-05-08 20:09:41     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  Frequency  \n",
       "update_time_                                                             \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       1287  \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          7  "
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 但是观察数据发现。datetime.week好像不是和我想的一样时间间隔为7天采样一次\n",
    "# 尝试resample\n",
    "\n",
    "data2.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>device_id_</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-12</th>\n",
       "      <td>83342</td>\n",
       "      <td>83342</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-19</th>\n",
       "      <td>142801</td>\n",
       "      <td>142801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-26</th>\n",
       "      <td>112755</td>\n",
       "      <td>112755</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               imsi_  device_id_\n",
       "update_time_                    \n",
       "2019-05-12     83342       83342\n",
       "2019-05-19    142801      142801\n",
       "2019-05-26    112755      112755"
      ]
     },
     "execution_count": 153,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.resample('W')['imsi_', 'device_id_'].count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on method resample in module pandas.core.generic:\n",
      "\n",
      "resample(rule, axis=0, closed: Union[str, NoneType] = None, label: Union[str, NoneType] = None, convention: str = 'start', kind: Union[str, NoneType] = None, loffset=None, base: Union[int, NoneType] = None, on=None, level=None, origin: Union[str, ForwardRef('Timestamp'), datetime.datetime, numpy.datetime64, int, numpy.int64, float] = 'start_day', offset: Union[ForwardRef('Timedelta'), datetime.timedelta, numpy.timedelta64, int, numpy.int64, float, str, NoneType] = None) -> 'Resampler' method of pandas.core.frame.DataFrame instance\n",
      "    Resample time-series data.\n",
      "    \n",
      "    Convenience method for frequency conversion and resampling of time\n",
      "    series. Object must have a datetime-like index (`DatetimeIndex`,\n",
      "    `PeriodIndex`, or `TimedeltaIndex`), or pass datetime-like values\n",
      "    to the `on` or `level` keyword.\n",
      "    \n",
      "    Parameters\n",
      "    ----------\n",
      "    rule : DateOffset, Timedelta or str\n",
      "        The offset string or object representing target conversion.\n",
      "    axis : {0 or 'index', 1 or 'columns'}, default 0\n",
      "        Which axis to use for up- or down-sampling. For `Series` this\n",
      "        will default to 0, i.e. along the rows. Must be\n",
      "        `DatetimeIndex`, `TimedeltaIndex` or `PeriodIndex`.\n",
      "    closed : {'right', 'left'}, default None\n",
      "        Which side of bin interval is closed. The default is 'left'\n",
      "        for all frequency offsets except for 'M', 'A', 'Q', 'BM',\n",
      "        'BA', 'BQ', and 'W' which all have a default of 'right'.\n",
      "    label : {'right', 'left'}, default None\n",
      "        Which bin edge label to label bucket with. The default is 'left'\n",
      "        for all frequency offsets except for 'M', 'A', 'Q', 'BM',\n",
      "        'BA', 'BQ', and 'W' which all have a default of 'right'.\n",
      "    convention : {'start', 'end', 's', 'e'}, default 'start'\n",
      "        For `PeriodIndex` only, controls whether to use the start or\n",
      "        end of `rule`.\n",
      "    kind : {'timestamp', 'period'}, optional, default None\n",
      "        Pass 'timestamp' to convert the resulting index to a\n",
      "        `DateTimeIndex` or 'period' to convert it to a `PeriodIndex`.\n",
      "        By default the input representation is retained.\n",
      "    loffset : timedelta, default None\n",
      "        Adjust the resampled time labels.\n",
      "    \n",
      "        .. deprecated:: 1.1.0\n",
      "            You should add the loffset to the `df.index` after the resample.\n",
      "            See below.\n",
      "    \n",
      "    base : int, default 0\n",
      "        For frequencies that evenly subdivide 1 day, the \"origin\" of the\n",
      "        aggregated intervals. For example, for '5min' frequency, base could\n",
      "        range from 0 through 4. Defaults to 0.\n",
      "    \n",
      "        .. deprecated:: 1.1.0\n",
      "            The new arguments that you should use are 'offset' or 'origin'.\n",
      "    \n",
      "    on : str, optional\n",
      "        For a DataFrame, column to use instead of index for resampling.\n",
      "        Column must be datetime-like.\n",
      "    level : str or int, optional\n",
      "        For a MultiIndex, level (name or number) to use for\n",
      "        resampling. `level` must be datetime-like.\n",
      "    origin : {'epoch', 'start', 'start_day'}, Timestamp or str, default 'start_day'\n",
      "        The timestamp on which to adjust the grouping. The timezone of origin\n",
      "        must match the timezone of the index.\n",
      "        If a timestamp is not used, these values are also supported:\n",
      "    \n",
      "        - 'epoch': `origin` is 1970-01-01\n",
      "        - 'start': `origin` is the first value of the timeseries\n",
      "        - 'start_day': `origin` is the first day at midnight of the timeseries\n",
      "    \n",
      "        .. versionadded:: 1.1.0\n",
      "    \n",
      "    offset : Timedelta or str, default is None\n",
      "        An offset timedelta added to the origin.\n",
      "    \n",
      "        .. versionadded:: 1.1.0\n",
      "    \n",
      "    Returns\n",
      "    -------\n",
      "    Resampler object\n",
      "    \n",
      "    See Also\n",
      "    --------\n",
      "    groupby : Group by mapping, function, label, or list of labels.\n",
      "    Series.resample : Resample a Series.\n",
      "    DataFrame.resample: Resample a DataFrame.\n",
      "    \n",
      "    Notes\n",
      "    -----\n",
      "    See the `user guide\n",
      "    <https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#resampling>`_\n",
      "    for more.\n",
      "    \n",
      "    To learn more about the offset strings, please see `this link\n",
      "    <https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#dateoffset-objects>`__.\n",
      "    \n",
      "    Examples\n",
      "    --------\n",
      "    Start by creating a series with 9 one minute timestamps.\n",
      "    \n",
      "    >>> index = pd.date_range('1/1/2000', periods=9, freq='T')\n",
      "    >>> series = pd.Series(range(9), index=index)\n",
      "    >>> series\n",
      "    2000-01-01 00:00:00    0\n",
      "    2000-01-01 00:01:00    1\n",
      "    2000-01-01 00:02:00    2\n",
      "    2000-01-01 00:03:00    3\n",
      "    2000-01-01 00:04:00    4\n",
      "    2000-01-01 00:05:00    5\n",
      "    2000-01-01 00:06:00    6\n",
      "    2000-01-01 00:07:00    7\n",
      "    2000-01-01 00:08:00    8\n",
      "    Freq: T, dtype: int64\n",
      "    \n",
      "    Downsample the series into 3 minute bins and sum the values\n",
      "    of the timestamps falling into a bin.\n",
      "    \n",
      "    >>> series.resample('3T').sum()\n",
      "    2000-01-01 00:00:00     3\n",
      "    2000-01-01 00:03:00    12\n",
      "    2000-01-01 00:06:00    21\n",
      "    Freq: 3T, dtype: int64\n",
      "    \n",
      "    Downsample the series into 3 minute bins as above, but label each\n",
      "    bin using the right edge instead of the left. Please note that the\n",
      "    value in the bucket used as the label is not included in the bucket,\n",
      "    which it labels. For example, in the original series the\n",
      "    bucket ``2000-01-01 00:03:00`` contains the value 3, but the summed\n",
      "    value in the resampled bucket with the label ``2000-01-01 00:03:00``\n",
      "    does not include 3 (if it did, the summed value would be 6, not 3).\n",
      "    To include this value close the right side of the bin interval as\n",
      "    illustrated in the example below this one.\n",
      "    \n",
      "    >>> series.resample('3T', label='right').sum()\n",
      "    2000-01-01 00:03:00     3\n",
      "    2000-01-01 00:06:00    12\n",
      "    2000-01-01 00:09:00    21\n",
      "    Freq: 3T, dtype: int64\n",
      "    \n",
      "    Downsample the series into 3 minute bins as above, but close the right\n",
      "    side of the bin interval.\n",
      "    \n",
      "    >>> series.resample('3T', label='right', closed='right').sum()\n",
      "    2000-01-01 00:00:00     0\n",
      "    2000-01-01 00:03:00     6\n",
      "    2000-01-01 00:06:00    15\n",
      "    2000-01-01 00:09:00    15\n",
      "    Freq: 3T, dtype: int64\n",
      "    \n",
      "    Upsample the series into 30 second bins.\n",
      "    \n",
      "    >>> series.resample('30S').asfreq()[0:5]   # Select first 5 rows\n",
      "    2000-01-01 00:00:00   0.0\n",
      "    2000-01-01 00:00:30   NaN\n",
      "    2000-01-01 00:01:00   1.0\n",
      "    2000-01-01 00:01:30   NaN\n",
      "    2000-01-01 00:02:00   2.0\n",
      "    Freq: 30S, dtype: float64\n",
      "    \n",
      "    Upsample the series into 30 second bins and fill the ``NaN``\n",
      "    values using the ``pad`` method.\n",
      "    \n",
      "    >>> series.resample('30S').pad()[0:5]\n",
      "    2000-01-01 00:00:00    0\n",
      "    2000-01-01 00:00:30    0\n",
      "    2000-01-01 00:01:00    1\n",
      "    2000-01-01 00:01:30    1\n",
      "    2000-01-01 00:02:00    2\n",
      "    Freq: 30S, dtype: int64\n",
      "    \n",
      "    Upsample the series into 30 second bins and fill the\n",
      "    ``NaN`` values using the ``bfill`` method.\n",
      "    \n",
      "    >>> series.resample('30S').bfill()[0:5]\n",
      "    2000-01-01 00:00:00    0\n",
      "    2000-01-01 00:00:30    1\n",
      "    2000-01-01 00:01:00    1\n",
      "    2000-01-01 00:01:30    2\n",
      "    2000-01-01 00:02:00    2\n",
      "    Freq: 30S, dtype: int64\n",
      "    \n",
      "    Pass a custom function via ``apply``\n",
      "    \n",
      "    >>> def custom_resampler(array_like):\n",
      "    ...     return np.sum(array_like) + 5\n",
      "    ...\n",
      "    >>> series.resample('3T').apply(custom_resampler)\n",
      "    2000-01-01 00:00:00     8\n",
      "    2000-01-01 00:03:00    17\n",
      "    2000-01-01 00:06:00    26\n",
      "    Freq: 3T, dtype: int64\n",
      "    \n",
      "    For a Series with a PeriodIndex, the keyword `convention` can be\n",
      "    used to control whether to use the start or end of `rule`.\n",
      "    \n",
      "    Resample a year by quarter using 'start' `convention`. Values are\n",
      "    assigned to the first quarter of the period.\n",
      "    \n",
      "    >>> s = pd.Series([1, 2], index=pd.period_range('2012-01-01',\n",
      "    ...                                             freq='A',\n",
      "    ...                                             periods=2))\n",
      "    >>> s\n",
      "    2012    1\n",
      "    2013    2\n",
      "    Freq: A-DEC, dtype: int64\n",
      "    >>> s.resample('Q', convention='start').asfreq()\n",
      "    2012Q1    1.0\n",
      "    2012Q2    NaN\n",
      "    2012Q3    NaN\n",
      "    2012Q4    NaN\n",
      "    2013Q1    2.0\n",
      "    2013Q2    NaN\n",
      "    2013Q3    NaN\n",
      "    2013Q4    NaN\n",
      "    Freq: Q-DEC, dtype: float64\n",
      "    \n",
      "    Resample quarters by month using 'end' `convention`. Values are\n",
      "    assigned to the last month of the period.\n",
      "    \n",
      "    >>> q = pd.Series([1, 2, 3, 4], index=pd.period_range('2018-01-01',\n",
      "    ...                                                   freq='Q',\n",
      "    ...                                                   periods=4))\n",
      "    >>> q\n",
      "    2018Q1    1\n",
      "    2018Q2    2\n",
      "    2018Q3    3\n",
      "    2018Q4    4\n",
      "    Freq: Q-DEC, dtype: int64\n",
      "    >>> q.resample('M', convention='end').asfreq()\n",
      "    2018-03    1.0\n",
      "    2018-04    NaN\n",
      "    2018-05    NaN\n",
      "    2018-06    2.0\n",
      "    2018-07    NaN\n",
      "    2018-08    NaN\n",
      "    2018-09    3.0\n",
      "    2018-10    NaN\n",
      "    2018-11    NaN\n",
      "    2018-12    4.0\n",
      "    Freq: M, dtype: float64\n",
      "    \n",
      "    For DataFrame objects, the keyword `on` can be used to specify the\n",
      "    column instead of the index for resampling.\n",
      "    \n",
      "    >>> d = dict({'price': [10, 11, 9, 13, 14, 18, 17, 19],\n",
      "    ...           'volume': [50, 60, 40, 100, 50, 100, 40, 50]})\n",
      "    >>> df = pd.DataFrame(d)\n",
      "    >>> df['week_starting'] = pd.date_range('01/01/2018',\n",
      "    ...                                     periods=8,\n",
      "    ...                                     freq='W')\n",
      "    >>> df\n",
      "       price  volume week_starting\n",
      "    0     10      50    2018-01-07\n",
      "    1     11      60    2018-01-14\n",
      "    2      9      40    2018-01-21\n",
      "    3     13     100    2018-01-28\n",
      "    4     14      50    2018-02-04\n",
      "    5     18     100    2018-02-11\n",
      "    6     17      40    2018-02-18\n",
      "    7     19      50    2018-02-25\n",
      "    >>> df.resample('M', on='week_starting').mean()\n",
      "                   price  volume\n",
      "    week_starting\n",
      "    2018-01-31     10.75    62.5\n",
      "    2018-02-28     17.00    60.0\n",
      "    \n",
      "    For a DataFrame with MultiIndex, the keyword `level` can be used to\n",
      "    specify on which level the resampling needs to take place.\n",
      "    \n",
      "    >>> days = pd.date_range('1/1/2000', periods=4, freq='D')\n",
      "    >>> d2 = dict({'price': [10, 11, 9, 13, 14, 18, 17, 19],\n",
      "    ...            'volume': [50, 60, 40, 100, 50, 100, 40, 50]})\n",
      "    >>> df2 = pd.DataFrame(d2,\n",
      "    ...                    index=pd.MultiIndex.from_product([days,\n",
      "    ...                                                     ['morning',\n",
      "    ...                                                      'afternoon']]\n",
      "    ...                                                     ))\n",
      "    >>> df2\n",
      "                          price  volume\n",
      "    2000-01-01 morning       10      50\n",
      "               afternoon     11      60\n",
      "    2000-01-02 morning        9      40\n",
      "               afternoon     13     100\n",
      "    2000-01-03 morning       14      50\n",
      "               afternoon     18     100\n",
      "    2000-01-04 morning       17      40\n",
      "               afternoon     19      50\n",
      "    >>> df2.resample('D', level=0).sum()\n",
      "                price  volume\n",
      "    2000-01-01     21     110\n",
      "    2000-01-02     22     140\n",
      "    2000-01-03     32     150\n",
      "    2000-01-04     36      90\n",
      "    \n",
      "    If you want to adjust the start of the bins based on a fixed timestamp:\n",
      "    \n",
      "    >>> start, end = '2000-10-01 23:30:00', '2000-10-02 00:30:00'\n",
      "    >>> rng = pd.date_range(start, end, freq='7min')\n",
      "    >>> ts = pd.Series(np.arange(len(rng)) * 3, index=rng)\n",
      "    >>> ts\n",
      "    2000-10-01 23:30:00     0\n",
      "    2000-10-01 23:37:00     3\n",
      "    2000-10-01 23:44:00     6\n",
      "    2000-10-01 23:51:00     9\n",
      "    2000-10-01 23:58:00    12\n",
      "    2000-10-02 00:05:00    15\n",
      "    2000-10-02 00:12:00    18\n",
      "    2000-10-02 00:19:00    21\n",
      "    2000-10-02 00:26:00    24\n",
      "    Freq: 7T, dtype: int64\n",
      "    \n",
      "    >>> ts.resample('17min').sum()\n",
      "    2000-10-01 23:14:00     0\n",
      "    2000-10-01 23:31:00     9\n",
      "    2000-10-01 23:48:00    21\n",
      "    2000-10-02 00:05:00    54\n",
      "    2000-10-02 00:22:00    24\n",
      "    Freq: 17T, dtype: int64\n",
      "    \n",
      "    >>> ts.resample('17min', origin='epoch').sum()\n",
      "    2000-10-01 23:18:00     0\n",
      "    2000-10-01 23:35:00    18\n",
      "    2000-10-01 23:52:00    27\n",
      "    2000-10-02 00:09:00    39\n",
      "    2000-10-02 00:26:00    24\n",
      "    Freq: 17T, dtype: int64\n",
      "    \n",
      "    >>> ts.resample('17min', origin='2000-01-01').sum()\n",
      "    2000-10-01 23:24:00     3\n",
      "    2000-10-01 23:41:00    15\n",
      "    2000-10-01 23:58:00    45\n",
      "    2000-10-02 00:15:00    45\n",
      "    Freq: 17T, dtype: int64\n",
      "    \n",
      "    If you want to adjust the start of the bins with an `offset` Timedelta, the two\n",
      "    following lines are equivalent:\n",
      "    \n",
      "    >>> ts.resample('17min', origin='start').sum()\n",
      "    2000-10-01 23:30:00     9\n",
      "    2000-10-01 23:47:00    21\n",
      "    2000-10-02 00:04:00    54\n",
      "    2000-10-02 00:21:00    24\n",
      "    Freq: 17T, dtype: int64\n",
      "    \n",
      "    >>> ts.resample('17min', offset='23h30min').sum()\n",
      "    2000-10-01 23:30:00     9\n",
      "    2000-10-01 23:47:00    21\n",
      "    2000-10-02 00:04:00    54\n",
      "    2000-10-02 00:21:00    24\n",
      "    Freq: 17T, dtype: int64\n",
      "    \n",
      "    To replace the use of the deprecated `base` argument, you can now use `offset`,\n",
      "    in this example it is equivalent to have `base=2`:\n",
      "    \n",
      "    >>> ts.resample('17min', offset='2min').sum()\n",
      "    2000-10-01 23:16:00     0\n",
      "    2000-10-01 23:33:00     9\n",
      "    2000-10-01 23:50:00    36\n",
      "    2000-10-02 00:07:00    39\n",
      "    2000-10-02 00:24:00    24\n",
      "    Freq: 17T, dtype: int64\n",
      "    \n",
      "    To replace the use of the deprecated `loffset` argument:\n",
      "    \n",
      "    >>> from pandas.tseries.frequencies import to_offset\n",
      "    >>> loffset = '19min'\n",
      "    >>> ts_out = ts.resample('17min').sum()\n",
      "    >>> ts_out.index = ts_out.index + to_offset(loffset)\n",
      "    >>> ts_out\n",
      "    2000-10-01 23:33:00     0\n",
      "    2000-10-01 23:50:00     9\n",
      "    2000-10-02 00:07:00    21\n",
      "    2000-10-02 00:24:00    54\n",
      "    2000-10-02 00:41:00    24\n",
      "    Freq: 17T, dtype: int64\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(data2.resample)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 338898 entries, 0 to 338897\n",
      "Data columns (total 9 columns):\n",
      " #   Column        Non-Null Count   Dtype         \n",
      "---  ------        --------------   -----         \n",
      " 0   imsi_         338898 non-null  int64         \n",
      " 1   update_time_  338898 non-null  datetime64[ns]\n",
      " 2   lac_          338898 non-null  int64         \n",
      " 3   cellid_       338898 non-null  int64         \n",
      " 4   status_       338898 non-null  object        \n",
      " 5   ap_type_      338898 non-null  object        \n",
      " 6   device_id_    338898 non-null  object        \n",
      " 7   eventid_      338898 non-null  object        \n",
      " 8   Frequency     338898 non-null  int64         \n",
      "dtypes: datetime64[ns](1), int64(4), object(4)\n",
      "memory usage: 23.3+ MB\n"
     ]
    }
   ],
   "source": [
    "data1.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "      <th>Frequency</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>1287</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>2526</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             imsi_        update_time_  lac_  cellid_ status_ ap_type_  \\\n",
       "0  460110413044304 2019-05-08 20:09:29     0        0      拒绝  FDD-LTE   \n",
       "1  460110413042577 2019-05-08 20:09:41     0        0      拒绝  FDD-LTE   \n",
       "2  460110425023300 2019-05-08 20:10:14     0        0      拒绝  FDD-LTE   \n",
       "3  460110714141865 2019-05-08 20:10:40     0        0      拒绝  FDD-LTE   \n",
       "4  460016692088409 2019-05-08 20:08:55     0        0      拒绝  FDD-LTE   \n",
       "\n",
       "   device_id_    eventid_  Frequency  \n",
       "0  DX-SZSC001  Normal Lau       1287  \n",
       "1  DX-SZSC001  Normal Lau          7  \n",
       "2  DX-SZSC001  Normal Lau          4  \n",
       "3  DX-SZSC001  Normal Lau       2526  \n",
       "4  LT-SZSC001  Normal Lau         14  "
      ]
     },
     "execution_count": 155,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "'Series' object has no attribute 'strftime'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-156-3977f4379665>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdata1\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'day'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata1\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate_time_\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstrftime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'%A'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/miniconda3/lib/python3.8/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36m__getattr__\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m   5128\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_info_axis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_can_hold_identifiers_and_holds_name\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5129\u001b[0m                 \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 5130\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mobject\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__getattribute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   5131\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   5132\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__setattr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mAttributeError\u001b[0m: 'Series' object has no attribute 'strftime'"
     ]
    }
   ],
   "source": [
    "data1['day'] = data1.strftime('%A')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "还可以设置每个日期是不是周末"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Thursday     66207\n",
       "Friday       56036\n",
       "Wednesday    53243\n",
       "Saturday     43013\n",
       "Monday       42093\n",
       "Tuesday      39589\n",
       "Sunday       38717\n",
       "Name: day, dtype: int64"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2['day'] = data2.index.strftime('%A')\n",
    "data2.day.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "      <th>Frequency</th>\n",
       "      <th>day</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>1287</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>7</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:14</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>4</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:40</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>2526</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:08:55</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>14</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_        update_time_  lac_  cellid_  \\\n",
       "update_time_                                                              \n",
       "2019-05-08 20:09:29  460110413044304 2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577 2019-05-08 20:09:41     0        0   \n",
       "2019-05-08 20:10:14  460110425023300 2019-05-08 20:10:14     0        0   \n",
       "2019-05-08 20:10:40  460110714141865 2019-05-08 20:10:40     0        0   \n",
       "2019-05-08 20:08:55  460016692088409 2019-05-08 20:08:55     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  Frequency  \\\n",
       "update_time_                                                              \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       1287   \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          7   \n",
       "2019-05-08 20:10:14      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          4   \n",
       "2019-05-08 20:10:40      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       2526   \n",
       "2019-05-08 20:08:55      拒绝  FDD-LTE  LT-SZSC001  Normal Lau         14   \n",
       "\n",
       "                           day  \n",
       "update_time_                    \n",
       "2019-05-08 20:09:29  Wednesday  \n",
       "2019-05-08 20:09:41  Wednesday  \n",
       "2019-05-08 20:10:14  Wednesday  \n",
       "2019-05-08 20:10:40  Wednesday  \n",
       "2019-05-08 20:08:55  Wednesday  "
      ]
     },
     "execution_count": 167,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [],
   "source": [
    "data3 = data2.drop('update_time_', axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.series.Series"
      ]
     },
     "execution_count": 176,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on method asfreq in module pandas.core.generic:\n",
      "\n",
      "asfreq(freq, method=None, how: Union[str, NoneType] = None, normalize: bool = False, fill_value=None) -> ~FrameOrSeries method of pandas.core.frame.DataFrame instance\n",
      "    Convert TimeSeries to specified frequency.\n",
      "    \n",
      "    Optionally provide filling method to pad/backfill missing values.\n",
      "    \n",
      "    Returns the original data conformed to a new index with the specified\n",
      "    frequency. ``resample`` is more appropriate if an operation, such as\n",
      "    summarization, is necessary to represent the data at the new frequency.\n",
      "    \n",
      "    Parameters\n",
      "    ----------\n",
      "    freq : DateOffset or str\n",
      "        Frequency DateOffset or string.\n",
      "    method : {'backfill'/'bfill', 'pad'/'ffill'}, default None\n",
      "        Method to use for filling holes in reindexed Series (note this\n",
      "        does not fill NaNs that already were present):\n",
      "    \n",
      "        * 'pad' / 'ffill': propagate last valid observation forward to next\n",
      "          valid\n",
      "        * 'backfill' / 'bfill': use NEXT valid observation to fill.\n",
      "    how : {'start', 'end'}, default end\n",
      "        For PeriodIndex only (see PeriodIndex.asfreq).\n",
      "    normalize : bool, default False\n",
      "        Whether to reset output index to midnight.\n",
      "    fill_value : scalar, optional\n",
      "        Value to use for missing values, applied during upsampling (note\n",
      "        this does not fill NaNs that already were present).\n",
      "    \n",
      "    Returns\n",
      "    -------\n",
      "    Same type as caller\n",
      "        Object converted to the specified frequency.\n",
      "    \n",
      "    See Also\n",
      "    --------\n",
      "    reindex : Conform DataFrame to new index with optional filling logic.\n",
      "    \n",
      "    Notes\n",
      "    -----\n",
      "    To learn more about the frequency strings, please see `this link\n",
      "    <https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases>`__.\n",
      "    \n",
      "    Examples\n",
      "    --------\n",
      "    Start by creating a series with 4 one minute timestamps.\n",
      "    \n",
      "    >>> index = pd.date_range('1/1/2000', periods=4, freq='T')\n",
      "    >>> series = pd.Series([0.0, None, 2.0, 3.0], index=index)\n",
      "    >>> df = pd.DataFrame({'s':series})\n",
      "    >>> df\n",
      "                           s\n",
      "    2000-01-01 00:00:00    0.0\n",
      "    2000-01-01 00:01:00    NaN\n",
      "    2000-01-01 00:02:00    2.0\n",
      "    2000-01-01 00:03:00    3.0\n",
      "    \n",
      "    Upsample the series into 30 second bins.\n",
      "    \n",
      "    >>> df.asfreq(freq='30S')\n",
      "                           s\n",
      "    2000-01-01 00:00:00    0.0\n",
      "    2000-01-01 00:00:30    NaN\n",
      "    2000-01-01 00:01:00    NaN\n",
      "    2000-01-01 00:01:30    NaN\n",
      "    2000-01-01 00:02:00    2.0\n",
      "    2000-01-01 00:02:30    NaN\n",
      "    2000-01-01 00:03:00    3.0\n",
      "    \n",
      "    Upsample again, providing a ``fill value``.\n",
      "    \n",
      "    >>> df.asfreq(freq='30S', fill_value=9.0)\n",
      "                           s\n",
      "    2000-01-01 00:00:00    0.0\n",
      "    2000-01-01 00:00:30    9.0\n",
      "    2000-01-01 00:01:00    NaN\n",
      "    2000-01-01 00:01:30    9.0\n",
      "    2000-01-01 00:02:00    2.0\n",
      "    2000-01-01 00:02:30    9.0\n",
      "    2000-01-01 00:03:00    3.0\n",
      "    \n",
      "    Upsample again, providing a ``method``.\n",
      "    \n",
      "    >>> df.asfreq(freq='30S', method='bfill')\n",
      "                           s\n",
      "    2000-01-01 00:00:00    0.0\n",
      "    2000-01-01 00:00:30    NaN\n",
      "    2000-01-01 00:01:00    NaN\n",
      "    2000-01-01 00:01:30    2.0\n",
      "    2000-01-01 00:02:00    2.0\n",
      "    2000-01-01 00:02:30    3.0\n",
      "    2000-01-01 00:03:00    3.0\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(data3.asfreq)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2017-01-01 00:00:00', '2017-01-01 01:00:00',\n",
       "               '2017-01-01 02:00:00', '2017-01-01 03:00:00',\n",
       "               '2017-01-01 04:00:00', '2017-01-01 05:00:00',\n",
       "               '2017-01-01 06:00:00', '2017-01-01 07:00:00',\n",
       "               '2017-01-01 08:00:00', '2017-01-01 09:00:00',\n",
       "               ...\n",
       "               '2017-01-30 15:00:00', '2017-01-30 16:00:00',\n",
       "               '2017-01-30 17:00:00', '2017-01-30 18:00:00',\n",
       "               '2017-01-30 19:00:00', '2017-01-30 20:00:00',\n",
       "               '2017-01-30 21:00:00', '2017-01-30 22:00:00',\n",
       "               '2017-01-30 23:00:00', '2017-01-31 00:00:00'],\n",
       "              dtype='datetime64[ns]', length=721, freq='H')"
      ]
     },
     "execution_count": 188,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rng = pd.date_range(start='1/1/2017', end='1/31/2017', freq='H')\n",
    "rng"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "metadata": {},
   "outputs": [],
   "source": [
    "test = pd.DataFrame({'1':range(721)}, index=rng)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-192-b558acf56be9>:1: FutureWarning: weekofyear and week have been deprecated, please use DatetimeIndex.isocalendar().week instead, which returns a Series.  To exactly reproduce the behavior of week and weekofyear and return an Index, you may call pd.Int64Index(idx.isocalendar().week)\n",
      "  test.index.week\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Int64Index([52, 52, 52, 52, 52, 52, 52, 52, 52, 52,\n",
       "            ...\n",
       "             5,  5,  5,  5,  5,  5,  5,  5,  5,  5],\n",
       "           dtype='int64', length=721)"
      ]
     },
     "execution_count": 192,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test.index.week"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-193-b747304f213c>:1: FutureWarning: weekofyear and week have been deprecated, please use DatetimeIndex.isocalendar().week instead, which returns a Series.  To exactly reproduce the behavior of week and weekofyear and return an Index, you may call pd.Int64Index(idx.isocalendar().week)\n",
      "  test['week'] = test.index.week\n"
     ]
    }
   ],
   "source": [
    "test['week'] = test.index.week"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 197,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>1</th>\n",
       "      <th>week</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2017-01-02 00:00:00</th>\n",
       "      <td>24</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-02 01:00:00</th>\n",
       "      <td>25</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-02 02:00:00</th>\n",
       "      <td>26</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-02 03:00:00</th>\n",
       "      <td>27</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-02 04:00:00</th>\n",
       "      <td>28</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-08 19:00:00</th>\n",
       "      <td>187</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-08 20:00:00</th>\n",
       "      <td>188</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-08 21:00:00</th>\n",
       "      <td>189</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-08 22:00:00</th>\n",
       "      <td>190</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017-01-08 23:00:00</th>\n",
       "      <td>191</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>168 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                       1  week\n",
       "2017-01-02 00:00:00   24     1\n",
       "2017-01-02 01:00:00   25     1\n",
       "2017-01-02 02:00:00   26     1\n",
       "2017-01-02 03:00:00   27     1\n",
       "2017-01-02 04:00:00   28     1\n",
       "...                  ...   ...\n",
       "2017-01-08 19:00:00  187     1\n",
       "2017-01-08 20:00:00  188     1\n",
       "2017-01-08 21:00:00  189     1\n",
       "2017-01-08 22:00:00  190     1\n",
       "2017-01-08 23:00:00  191     1\n",
       "\n",
       "[168 rows x 2 columns]"
      ]
     },
     "execution_count": 197,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test.loc[test.week == 1, :] # 可以看到week属性表示的是一年的第几周"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "      <th>Frequency</th>\n",
       "      <th>day</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>1287</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>7</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:14</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>4</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:40</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>2526</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:08:55</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>14</td>\n",
       "      <td>Wednesday</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_        update_time_  lac_  cellid_  \\\n",
       "update_time_                                                              \n",
       "2019-05-08 20:09:29  460110413044304 2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577 2019-05-08 20:09:41     0        0   \n",
       "2019-05-08 20:10:14  460110425023300 2019-05-08 20:10:14     0        0   \n",
       "2019-05-08 20:10:40  460110714141865 2019-05-08 20:10:40     0        0   \n",
       "2019-05-08 20:08:55  460016692088409 2019-05-08 20:08:55     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  Frequency  \\\n",
       "update_time_                                                              \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       1287   \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          7   \n",
       "2019-05-08 20:10:14      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          4   \n",
       "2019-05-08 20:10:40      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       2526   \n",
       "2019-05-08 20:08:55      拒绝  FDD-LTE  LT-SZSC001  Normal Lau         14   \n",
       "\n",
       "                           day  \n",
       "update_time_                    \n",
       "2019-05-08 20:09:29  Wednesday  \n",
       "2019-05-08 20:09:41  Wednesday  \n",
       "2019-05-08 20:10:14  Wednesday  \n",
       "2019-05-08 20:10:40  Wednesday  \n",
       "2019-05-08 20:08:55  Wednesday  "
      ]
     },
     "execution_count": 198,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-200-216dc2116ae2>:1: FutureWarning: weekofyear and week have been deprecated, please use DatetimeIndex.isocalendar().week instead, which returns a Series.  To exactly reproduce the behavior of week and weekofyear and return an Index, you may call pd.Int64Index(idx.isocalendar().week)\n",
      "  data2.index.week\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Int64Index([19, 19, 19, 19, 19, 19, 19, 19, 19, 19,\n",
       "            ...\n",
       "            21, 21, 21, 21, 21, 21, 21, 21, 21, 21],\n",
       "           dtype='int64', name='update_time_', length=338898)"
      ]
     },
     "execution_count": 200,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.index.week"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 202,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<ipython-input-202-ad2d676fec0f>:1: FutureWarning: weekofyear and week have been deprecated, please use DatetimeIndex.isocalendar().week instead, which returns a Series.  To exactly reproduce the behavior of week and weekofyear and return an Index, you may call pd.Int64Index(idx.isocalendar().week)\n",
      "  data2['week'] = data2.index.week\n"
     ]
    }
   ],
   "source": [
    "data2['week'] = data2.index.week"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 203,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "      <th>Frequency</th>\n",
       "      <th>day</th>\n",
       "      <th>week</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>1287</td>\n",
       "      <td>Wednesday</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>7</td>\n",
       "      <td>Wednesday</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:14</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>4</td>\n",
       "      <td>Wednesday</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:40</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>2526</td>\n",
       "      <td>Wednesday</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:08:55</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>14</td>\n",
       "      <td>Wednesday</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_        update_time_  lac_  cellid_  \\\n",
       "update_time_                                                              \n",
       "2019-05-08 20:09:29  460110413044304 2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577 2019-05-08 20:09:41     0        0   \n",
       "2019-05-08 20:10:14  460110425023300 2019-05-08 20:10:14     0        0   \n",
       "2019-05-08 20:10:40  460110714141865 2019-05-08 20:10:40     0        0   \n",
       "2019-05-08 20:08:55  460016692088409 2019-05-08 20:08:55     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  Frequency  \\\n",
       "update_time_                                                              \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       1287   \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          7   \n",
       "2019-05-08 20:10:14      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          4   \n",
       "2019-05-08 20:10:40      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       2526   \n",
       "2019-05-08 20:08:55      拒绝  FDD-LTE  LT-SZSC001  Normal Lau         14   \n",
       "\n",
       "                           day  week  \n",
       "update_time_                          \n",
       "2019-05-08 20:09:29  Wednesday    19  \n",
       "2019-05-08 20:09:41  Wednesday    19  \n",
       "2019-05-08 20:10:14  Wednesday    19  \n",
       "2019-05-08 20:10:40  Wednesday    19  \n",
       "2019-05-08 20:08:55  Wednesday    19  "
      ]
     },
     "execution_count": 203,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 206,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id_</th>\n",
       "      <th>DX-SZSC001</th>\n",
       "      <th>LT-SZSC001</th>\n",
       "      <th>YD-SZSC001</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>imsi_</th>\n",
       "      <th>week</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"3\" valign=\"top\">222992312514644</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>0</td>\n",
       "      <td>17</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>228017227822524</th>\n",
       "      <th>20</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>228017228577400</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>520030506571711</th>\n",
       "      <th>21</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">525037903421171</th>\n",
       "      <th>19</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525058181486477</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525058231350753</th>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>55381 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "device_id_            DX-SZSC001  LT-SZSC001  YD-SZSC001\n",
       "imsi_           week                                    \n",
       "222992312514644 19             0           7           0\n",
       "                20             0          17           0\n",
       "                21             0          10           0\n",
       "228017227822524 20             0           0           3\n",
       "228017228577400 19             0           3           0\n",
       "...                          ...         ...         ...\n",
       "520030506571711 21             2           0           0\n",
       "525037903421171 19             1           0           1\n",
       "                20             0           0           1\n",
       "525058181486477 19             0           1           2\n",
       "525058231350753 19             0           0           5\n",
       "\n",
       "[55381 rows x 3 columns]"
      ]
     },
     "execution_count": 206,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.loc[data2.Frequency >= 2].groupby(['imsi_', 'week'])['device_id_'].value_counts().unstack(fill_value=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>imsi_</th>\n",
       "      <th>update_time_</th>\n",
       "      <th>lac_</th>\n",
       "      <th>cellid_</th>\n",
       "      <th>status_</th>\n",
       "      <th>ap_type_</th>\n",
       "      <th>device_id_</th>\n",
       "      <th>eventid_</th>\n",
       "      <th>Frequency</th>\n",
       "      <th>day</th>\n",
       "      <th>week</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>update_time_</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:29</th>\n",
       "      <td>460110413044304</td>\n",
       "      <td>2019-05-08 20:09:29</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>1287</td>\n",
       "      <td>Wednesday</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:09:41</th>\n",
       "      <td>460110413042577</td>\n",
       "      <td>2019-05-08 20:09:41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>7</td>\n",
       "      <td>Wednesday</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:14</th>\n",
       "      <td>460110425023300</td>\n",
       "      <td>2019-05-08 20:10:14</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>4</td>\n",
       "      <td>Wednesday</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:10:40</th>\n",
       "      <td>460110714141865</td>\n",
       "      <td>2019-05-08 20:10:40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>2526</td>\n",
       "      <td>Wednesday</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-08 20:08:55</th>\n",
       "      <td>460016692088409</td>\n",
       "      <td>2019-05-08 20:08:55</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>14</td>\n",
       "      <td>Wednesday</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-24 22:38:32</th>\n",
       "      <td>460110418450384</td>\n",
       "      <td>2019-05-24 22:38:32</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>DX-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>2</td>\n",
       "      <td>Friday</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-24 22:38:34</th>\n",
       "      <td>460010035785382</td>\n",
       "      <td>2019-05-24 22:38:34</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>1</td>\n",
       "      <td>Friday</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-24 22:38:36</th>\n",
       "      <td>460078153594140</td>\n",
       "      <td>2019-05-24 22:38:36</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>TDD-LTE</td>\n",
       "      <td>YD-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>133</td>\n",
       "      <td>Friday</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-24 22:39:00</th>\n",
       "      <td>460001921935238</td>\n",
       "      <td>2019-05-24 22:39:00</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>TDD-LTE</td>\n",
       "      <td>YD-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>21</td>\n",
       "      <td>Friday</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-05-24 22:39:04</th>\n",
       "      <td>460015306678853</td>\n",
       "      <td>2019-05-24 22:39:04</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>拒绝</td>\n",
       "      <td>FDD-LTE</td>\n",
       "      <td>LT-SZSC001</td>\n",
       "      <td>Normal Lau</td>\n",
       "      <td>142</td>\n",
       "      <td>Friday</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>338898 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                               imsi_        update_time_  lac_  cellid_  \\\n",
       "update_time_                                                              \n",
       "2019-05-08 20:09:29  460110413044304 2019-05-08 20:09:29     0        0   \n",
       "2019-05-08 20:09:41  460110413042577 2019-05-08 20:09:41     0        0   \n",
       "2019-05-08 20:10:14  460110425023300 2019-05-08 20:10:14     0        0   \n",
       "2019-05-08 20:10:40  460110714141865 2019-05-08 20:10:40     0        0   \n",
       "2019-05-08 20:08:55  460016692088409 2019-05-08 20:08:55     0        0   \n",
       "...                              ...                 ...   ...      ...   \n",
       "2019-05-24 22:38:32  460110418450384 2019-05-24 22:38:32     0        0   \n",
       "2019-05-24 22:38:34  460010035785382 2019-05-24 22:38:34     0        0   \n",
       "2019-05-24 22:38:36  460078153594140 2019-05-24 22:38:36     0        0   \n",
       "2019-05-24 22:39:00  460001921935238 2019-05-24 22:39:00     0        0   \n",
       "2019-05-24 22:39:04  460015306678853 2019-05-24 22:39:04     0        0   \n",
       "\n",
       "                    status_ ap_type_  device_id_    eventid_  Frequency  \\\n",
       "update_time_                                                              \n",
       "2019-05-08 20:09:29      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       1287   \n",
       "2019-05-08 20:09:41      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          7   \n",
       "2019-05-08 20:10:14      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          4   \n",
       "2019-05-08 20:10:40      拒绝  FDD-LTE  DX-SZSC001  Normal Lau       2526   \n",
       "2019-05-08 20:08:55      拒绝  FDD-LTE  LT-SZSC001  Normal Lau         14   \n",
       "...                     ...      ...         ...         ...        ...   \n",
       "2019-05-24 22:38:32      拒绝  FDD-LTE  DX-SZSC001  Normal Lau          2   \n",
       "2019-05-24 22:38:34      拒绝  FDD-LTE  LT-SZSC001  Normal Lau          1   \n",
       "2019-05-24 22:38:36      拒绝  TDD-LTE  YD-SZSC001  Normal Lau        133   \n",
       "2019-05-24 22:39:00      拒绝  TDD-LTE  YD-SZSC001  Normal Lau         21   \n",
       "2019-05-24 22:39:04      拒绝  FDD-LTE  LT-SZSC001  Normal Lau        142   \n",
       "\n",
       "                           day  week  \n",
       "update_time_                          \n",
       "2019-05-08 20:09:29  Wednesday    19  \n",
       "2019-05-08 20:09:41  Wednesday    19  \n",
       "2019-05-08 20:10:14  Wednesday    19  \n",
       "2019-05-08 20:10:40  Wednesday    19  \n",
       "2019-05-08 20:08:55  Wednesday    19  \n",
       "...                        ...   ...  \n",
       "2019-05-24 22:38:32     Friday    21  \n",
       "2019-05-24 22:38:34     Friday    21  \n",
       "2019-05-24 22:38:36     Friday    21  \n",
       "2019-05-24 22:39:00     Friday    21  \n",
       "2019-05-24 22:39:04     Friday    21  \n",
       "\n",
       "[338898 rows x 11 columns]"
      ]
     },
     "execution_count": 207,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 208,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "update_time_\n",
       "2019-05-08 20:09:29    460110413044304\n",
       "2019-05-08 20:09:41    460110413042577\n",
       "2019-05-08 20:10:14    460110425023300\n",
       "2019-05-08 20:10:40    460110714141865\n",
       "2019-05-08 20:08:55    460016692088409\n",
       "                            ...       \n",
       "2019-05-08 22:59:10    460029988447986\n",
       "2019-05-08 22:59:12    460004183882738\n",
       "2019-05-08 22:59:15    460071490036208\n",
       "2019-05-08 22:59:28    460110725947927\n",
       "2019-05-08 22:59:34    460016497525494\n",
       "Name: imsi_, Length: 2283, dtype: int64"
      ]
     },
     "execution_count": 208,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.imsi_['2019-5-8-20':'2019-5-8-22']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 209,
   "metadata": {},
   "outputs": [],
   "source": [
    "from datetime import time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 210,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime.time(10, 0)"
      ]
     },
     "execution_count": 210,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "time(10,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 216,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "update_time_\n",
       "2019-05-08 22:00:07    460061061015346\n",
       "2019-05-08 22:00:07    460014568505832\n",
       "2019-05-08 22:00:11    460015232357591\n",
       "2019-05-08 22:00:12    460013001965412\n",
       "2019-05-08 22:00:26    460016717622502\n",
       "                            ...       \n",
       "2019-05-24 22:38:32    460110418450384\n",
       "2019-05-24 22:38:34    460010035785382\n",
       "2019-05-24 22:38:36    460078153594140\n",
       "2019-05-24 22:39:00    460001921935238\n",
       "2019-05-24 22:39:04    460015306678853\n",
       "Name: imsi_, Length: 10992, dtype: int64"
      ]
     },
     "execution_count": 216,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.imsi_.loc[time(22,0):time(23,0)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 222,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 222,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.index.hour.min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 225,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "23"
      ]
     },
     "execution_count": 225,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.index.hour.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 218,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Timestamp('2019-05-24 22:39:04')"
      ]
     },
     "execution_count": 218,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.index.max()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 指定时间进入某地的人群挖掘"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 243,
   "metadata": {},
   "outputs": [],
   "source": [
    "# res = []\n",
    "# for time in range()\n",
    "d = {}\n",
    "res1 = data2.loc[time(8,0):time(10,0)]\n",
    "for i, j in res1.groupby(res1.index.day)['imsi_']:\n",
    "    d[i] = set(j.to_list())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 248,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{460000211720632,\n",
       " 460002406691111,\n",
       " 460004202121725,\n",
       " 460014926623352,\n",
       " 460029571752973,\n",
       " 460110267853698,\n",
       " 460110412995758}"
      ]
     },
     "execution_count": 248,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res = None\n",
    "for each in d.values():\n",
    "    if not res:\n",
    "        res = each\n",
    "    else:\n",
    "        res &= each\n",
    "res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 238,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "22    3808\n",
       "23    3569\n",
       "11    2964\n",
       "13    2884\n",
       "16    2848\n",
       "15    2743\n",
       "14    2684\n",
       "17    2677\n",
       "20    2581\n",
       "21    2546\n",
       "24    2534\n",
       "10    2522\n",
       "9     2477\n",
       "12    2391\n",
       "19    2097\n",
       "18    2092\n",
       "Name: update_time_, dtype: int64"
      ]
     },
     "execution_count": 238,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res1.index.day.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "oldHeight": 347,
   "position": {
    "height": "369px",
    "left": "930px",
    "right": "20px",
    "top": "93px",
    "width": "431px"
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "varInspector_section_display": "block",
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
